Menu
CoddyTech

Golf bi

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 68 trên 71.

Chơi golf với một viên bi trên sân cỏ nhỏ. Viên bi bắt đầu ở điểm phát bóng: bạn ngắm bằng các phím mũi tên, giữ phím Space để tăng lực rồi thả ra để đánh. Viên bi lăn, nảy khỏi các thành sân và khối ở giữa, rồi chậm dần. Khi đủ chậm, nó sẽ dừng hẳn. Chỉ lúc đó bạn mới có thể đánh tiếp. Viên bi lăn vào lỗ với tốc độ chậm sẽ rơi vào; nếu đến quá nhanh, nó sẽ lăn qua lỗ. Số lần đánh càng ít càng tốt.

Viết hai tập lệnh: Golf cho viên bi và Hole cho lỗ.

challenge icon

Thử thách

Khó

Viết code cho viên bi golf: ngắm, tích lực, đánh.

  1. Điều chỉnh aim bằng trục Horizontal thô với tốc độ aimSpeed; đặt pointer tại transform.position + Quaternion.Euler(0f, aim, 0f) * Vector3.forward.
  2. Khi viên bi đứng yên (tốc độ dưới stopSpeed), giữ phím Space để tăng power theo chargeRate đến maxPower; thả phím để đánh viên bi theo hướng ngắm (Impulse), đặt lại power, ghi log "Stroke " + strokes.
  3. Trong FixedUpdate(), khi viên bi đứng yên, đặt cả hai vận tốc về 0.

Nhấn Chơi rồi đánh bóng. Sau đó nhấn Kiểm tra.

Tự làm thử

using UnityEngine;

public class Golf : MonoBehaviour
{
    public int strokes = 0;
    [SerializeField] private Transform pointer;
    [SerializeField] private float aimSpeed = 90f;
    [SerializeField] private float chargeRate = 4f;
    [SerializeField] private float maxPower = 6f;
    [SerializeField] private float stopSpeed = 0.3f;
    private Rigidbody rb;

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

    // Ngắm bằng các phím mũi tên, giữ Space để tích lực, thả phím để đánh bóng, dừng khi bóng lăn chậm
}

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

Tự luyện tập: Playground Unity