Menu
CoddyTech

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.

challenge icon

Tantangan

Mudah

Di Ball:

  1. Tambahkan bool launched.
  2. Tulis public void Launch(Vector3 direction): fungsi ini menetapkan launched menjadi true dan menetapkan linearVelocity milik Rigidbody ke arah yang panjangnya 1 unit, dikalikan speed.
  3. Tambahkan Update(). Selama bola belum diluncurkan, posisikan bola 0.5 unit di atas posisi paddle, dan saat Space ditekan, panggil Launch(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.
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Game Unity: Brick Breaker