Menu
CoddyTech

Tầm bắn của pháo

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

Một khẩu pháo đặt ở một đầu trường bắn, còn ba mục tiêu trượt qua lại trên trường bắn ở các khoảng cách khác nhau. Bạn nghiêng nòng pháo lên xuống để nhắm đến từng khoảng cách và canh thời điểm bắn sao cho viên đạn bay qua đường ngắm đúng lúc mục tiêu đi ngang qua. Viên đạn trúng mục tiêu sẽ đánh bật mục tiêu ra và bị tiêu hao; mọi thứ khác va vào mục tiêu đều không ảnh hưởng đến nó. Các mục tiêu là vật thể động học, vì vậy các cú va chạm không bao giờ đẩy chúng, và khẩu pháo có năm viên đạn.

Viết hai script: Cannon trên Barrel và Target trên từng mục tiêu.

challenge icon

Thử thách

Khó

Viết khẩu pháo: ngắm rồi bắn năm quả bóng.

  1. Trong Update(), cộng Input.GetAxisRaw("Vertical") * turnSpeed * Time.deltaTime vào angle, giới hạn giá trị trong khoảng từ 10 đến 60, rồi đặt transform.rotation = Quaternion.Euler(-angle, 0f, 0f);.
  2. Khi nhấn phím Space và balls > 0, tạo ballPrefab tại transform.position + transform.forward rồi gọi AddForce(transform.forward * power, ForceMode.Impulse).
  3. Giảm balls đi 1 và ghi nhật ký "Balls left: " + balls.

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

Tự làm thử

using UnityEngine;

public class Cannon : MonoBehaviour
{
    [SerializeField] private Rigidbody ballPrefab;
    [SerializeField] private float angle = 30f;
    [SerializeField] private float turnSpeed = 40f;
    [SerializeField] private float power = 30f;
    [SerializeField] private int balls = 5;

    void Update()
    {
        // Dùng phím mũi tên lên và xuống để ngắm, nhấn Space để bắn
    }
}

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

Tự luyện tập: Playground Unity