Menu
CoddyTech

Kamu Menang

Termasuk bagian Fisika dan Gameplay dalam perjalanan Unity di Coddy. Pelajaran 33 dari 71.

challenge icon

Tantangan

Sedang

Biarkan pemain menang saat mencapai target poin.

  1. Di Ball.cs, tambahkan public int target = 10; dan bool IsPlaying(), yang mengembalikan timeLeft > 0f && score < target.
  2. Gunakan IsPlaying() sebagai pengganti timeLeft > 0f di Update() dan FixedUpdate(), lalu awali AddScore dengan if (!IsPlaying()) return;.
  3. Setelah baris skor, saat score >= target, catat You win!.

Tekan tombol “Main” dan kumpulkan 8 poin. Lalu tekan tombol “Periksa”.

Coba sendiri

using UnityEngine;

public class Ball : MonoBehaviour
{
    public float force = 10f;
    public int score;
    public float timeLimit = 60f;
    public float timeLeft;
    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
        timeLeft = timeLimit;
    }

    void Update()
    {
        if (timeLeft > 0f)
        {
            timeLeft -= Time.deltaTime;
            if (timeLeft <= 0f)
            {
                timeLeft = 0f;
                Debug.Log("Time's up! Score: " + score);
            }
        }
    }

    void FixedUpdate()
    {
        if (timeLeft > 0f)
        {
            float x = Input.GetAxis("Horizontal");
            float z = Input.GetAxis("Vertical");
            rb.AddForce(new Vector3(x, 0f, z) * force);
        }
    }

    public void AddScore(int points)
    {
        score += points;
        Debug.Log("Score: " + score);
    }
}

Semua pelajaran di Fisika dan Gameplay

Latihan sendiri: Playground Unity