Menu
CoddyTech

Si Penangkap

Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 50 dari 85.

Bab ini membuat game kecil, Catch the Star, dengan satu fitur di setiap pelajaran: sebuah bintang jatuh, kamu menggeser penangkap ke kiri dan kanan di bawahnya, setiap tangkapan menambah skor dan membuat bintang berikutnya jatuh lebih cepat, dan tiga kali meleset mengakhiri game. Semuanya ada dalam satu skrip, Catcher, pada penangkap. Fitur pertama adalah pergerakan: penangkap bergerak dengan tombol panah dan tidak pernah meninggalkan lantai.

Menjaga angka tetap dalam batas adalah tugas Mathf.Clamp(value, min, max). Fungsi ini mengembalikan min saat nilai berada di bawah min, max saat nilai berada di atas max, dan nilai itu sendiri dalam kondisi lain. Kamera ini mengikuti pemain menaiki menara, tetapi ketinggiannya tetap di antara 2 dan 12:

[SerializeField] private Transform player;

void Update()
{
    float y = Mathf.Clamp(player.position.y, 2f, 12f);
    transform.position = new Vector3(transform.position.x, y, transform.position.z);
}

Clamp mengembalikan angka baru dan tidak mengubah apa pun dengan sendirinya, jadi tetapkan hasilnya. Lakukan clamp setelah semua perubahan pada frame dan sebelum kamu menuliskan kembali posisi, agar tidak ada frame yang menampilkan objek melewati batasnya.

challenge icon

Tantangan

Sedang

Beri catcher, bilah biru, gerakan.

  1. Di Update(), salin transform.position.x ke float x, lalu tambahkan atau kurangi speed * Time.deltaTime sesuai tombol panah yang ditahan.
  2. Jaga agar catcher selebar 2 unit tetap berada di lantai (x dari -5 hingga 5): x = Mathf.Clamp(x, -4f, 4f);.
  3. Tulis kembali x ke transform.position, dengan mempertahankan y dan z.

Tekan tombol “Main” dan tahan tombol panah: catcher akan berhenti di tepi. Lalu tekan tombol “Periksa”.

Coba sendiri

using UnityEngine;

public class Catcher : MonoBehaviour
{
    [SerializeField] private float speed = 6f;

    void Update()
    {
        // Tombol panah: geser sepanjang sumbu x dengan kecepatan speed unit per detik.
        // Jaga agar seluruh catcher tetap di lantai (x dari -5 hingga 5, lebar catcher adalah 2).
    }
}

Semua pelajaran di Dasar-Dasar Scripting Unity

Latihan sendiri: Playground Unity