Menu
CoddyTech

Bạn thắng

Thuộc phần Vật lý và lối chơi trong hành trình Unity của Coddy. Bài học 33 trên 71.

challenge icon

Thử thách

Trung bình

Để người chơi thắng khi đạt target điểm.

  1. Trong Ball.cs, thêm public int target = 10; và bool IsPlaying(), trả về timeLeft > 0f && score < target.
  2. Dùng IsPlaying() thay cho timeLeft > 0f trong Update() và FixedUpdate(), rồi mở đầu AddScore bằng if (!IsPlaying()) return;.
  3. Sau dòng cập nhật điểm, khi score >= target, ghi nhật ký You win!.

Nhấn Chơi và thu thập 8 điểm. Sau đó nhấn Kiểm tra.

Tự làm thử

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);
    }
}

Tất cả bài học trong Vật lý và lối chơi

Tự luyện tập: Playground Unity