Luncurkan
Pelajaran 2 dari 16 dalam kursus Game Unity: Brick Breaker di Coddy.
Bola menunggu di atas paddle hingga pemain meluncurkannya. Sampai saat itu, skrip menempatkannya di atas paddle pada setiap frame, sehingga bola bergerak mengikuti paddle, dan sebuah bool mengingat apakah bola sudah diluncurkan. Peluncuran mengatur linearVelocity milik Rigidbody satu kali. Gravitasi Rigidbody bola dinonaktifkan, jadi setelah itu bola melaju lurus dengan kecepatan tersebut hingga menabrak sesuatu.
Pelampung pancing bekerja dengan cara yang sama: pelampung menggantung di bawah ujung joran hingga umpan dilempar.
bool cast;
void Update()
{
if (cast) return;
transform.position = rodTip.position + Vector3.down * 1.5f;
if (Keyboard.current.spaceKey.wasPressedThisFrame)
{
cast = true;
rb.linearVelocity = new Vector3(4f, 3f, 0f);
}
}wasPressedThisFrame bernilai true hanya pada frame saat tombol ditekan, jadi nilai ini dibaca di Update(), yang berjalan satu kali setiap frame. Pelampung bergerak dengan panjang vektor (4, 3, 0), yaitu 5 unit per detik. Untuk meluncurkannya dengan kecepatan tertentu ke arah mana pun, buat arah tersebut sepanjang 1 unit dengan .normalized, lalu kalikan dengan kecepatannya.
Tantangan
MudahDi Ball:
- Tambahkan
bool launched. - Tulis
public void Launch(Vector3 direction): fungsi ini menetapkanlaunchedmenjadi true dan menetapkanlinearVelocitymilik Rigidbody ke arah yang panjangnya 1 unit, dikalikanspeed. - Tambahkan
Update(). Selama bola belum diluncurkan, posisikan bola 0.5 unit di atas posisi paddle, dan saat Space ditekan, panggilLaunch(new Vector3(0.3f, 1f, 0f)).
Bola belum bisa memantul, jadi bola langsung berhenti saat menabrak dinding pertama. Pelajaran berikutnya akan memperbaikinya.
Tekan Jalankan, gerakkan paddle, luncurkan bola, lalu tekan Periksa.
Coba sendiri
using UnityEngine;
using UnityEngine.InputSystem;
public class Ball : MonoBehaviour
{
public Transform paddle;
public float speed = 9f;
Rigidbody rb;
void Awake()
{
rb = GetComponent<Rigidbody>();
}
// Selanjutnya: bola mengikuti paddle sampai Space meluncurkannya.
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.