Menu
CoddyTech

Bintang demi Bintang

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

challenge icon

Tantangan

Sedang

Kirim bintang baru setiap kali berhasil menangkap atau meleset.

  1. Tulis void ResetStar() yang mengatur star.position = new Vector3(Random.Range(-4f, 4f), 6f, 0f);, lalu panggil fungsi itu saat menangkap, sebagai pengganti baris lama.
  2. Setelah if untuk menangkap, tambahkan else if (star.position.y < 0f) yang memanggil ResetStar();. else if hanya dijalankan jika if sebelumnya bernilai false.

Tekan tombol “Main”: setiap bintang baru jatuh pada x yang berbeda. Lalu tekan tombol “Periksa”.

Coba sendiri

using UnityEngine;

public class Catcher : MonoBehaviour
{
    [SerializeField] private float speed = 6f;
    [SerializeField] private Transform star;
    [SerializeField] private float fallSpeed = 3f;
    private int score;

    void Update()
    {
        float x = transform.position.x;
        if (Input.GetKey(KeyCode.RightArrow))
        {
            x += speed * Time.deltaTime;
        }
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            x -= speed * Time.deltaTime;
        }
        x = Mathf.Clamp(x, -4f, 4f);
        transform.position = new Vector3(x, transform.position.y, transform.position.z);

        star.position += Vector3.down * fallSpeed * Time.deltaTime;

        if (Vector3.Distance(transform.position, star.position) < 1f)
        {
            score++;
            Debug.Log("Caught! Score: " + score);
            star.position = new Vector3(star.position.x, 6f, star.position.z);
        }
    }
}

Semua pelajaran di Dasar-Dasar Scripting Unity

Latihan sendiri: Playground Unity