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.
Thử thách
KhóViết khẩu pháo: ngắm rồi bắn năm quả bóng.
- Trong
Update(), cộngInput.GetAxisRaw("Vertical") * turnSpeed * Time.deltaTimevàoangle, giới hạn giá trị trong khoảng từ 10 đến 60, rồi đặttransform.rotation = Quaternion.Euler(-angle, 0f, 0f);. - Khi nhấn phím Space và
balls > 0, tạoballPrefabtạitransform.position + transform.forwardrồi gọiAddForce(transform.forward * power, ForceMode.Impulse). - 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
1Rigidbody
Trọng lực và khối lượngĐẩy bằng AddForceNhảy bằng xung lựcFixedUpdate cho vật lýVận tốcVật thể động họcÔn tập: Bệ phóng4Coroutine
InvokeInvokeRepeating, CancelInvokeCoroutine đầu tiên của bạnVòng lặp trong CoroutineDừng CoroutineÔn tập: đếm ngược10Dự án: Thoát khỏi đấu trường
Đấu trườngThợ săn2Va chạm
OnCollisionEnterMình đã va chạm với gì?Vỡ khi va chạmĐứng trên mặt đấtĐộ nảy và ma sátHình dạng colliderÔn tập: Tường có thể phá vỡ5Dự án: Cuộc đua thu thập xu
Quả bóng lănThu thập xuTự luyện tập: Playground Unity