Ôn tập: tháp pháo mô-đun
Thuộc phần Kiến trúc trò chơi trong Unity trong hành trình Unity của Coddy. Bài học 5 trên 64.
Thử thách
DễHãy tạo vũ khí cho Turret1. TurretControl và Cannon đã sẵn sàng.
- Trong
Ammo, viếtpublic bool Take(): dùng một viên đạn pháo rồi trả vềtrue, hoặc ghi nhật kýname + " is empty"rồi trả vềfalse. - Khai báo
Weaponlà lớp trừu tượng với[RequireComponent(typeof(Ammo))], và khai báoFire()làprotected abstractkhông có phần thân. Pull()không làm gì trong thời giancooldown; nếu không, nếuTake()trả về đúng, hãy khởi động lại thời gian chờ và gọiFire().
Nhấn Chơi rồi bắn cho đến khi hết đạn. Sau đó nhấn Kiểm tra.
Tự làm thử
using UnityEngine;
// Những điểm chung của mọi vũ khí trên tháp pháo.
public class Weapon : MonoBehaviour
{
public GameObject shellPrefab;
public float cooldown = 1f;
public void Pull()
{
// chờ hết thời gian hồi, lấy một viên đạn từ Ammo, rồi bắn
}
// Mỗi vũ khí có cách bắn riêng.
protected virtual void Fire()
{
}
// Một viên đạn xuất phát từ vị trí này so với tháp pháo, bay theo hướng tháp pháo đang quay.
protected void Launch(Vector3 offset)
{
Instantiate(shellPrefab, transform.position + transform.rotation * offset, transform.rotation);
}
}
Tất cả bài học trong Kiến trúc trò chơi trong Unity
1Thành phần, không phải hệ thống phân cấp
Thành phần nhỏTập lệnh kẻ địch cơ sởThành phần trừu tượngCác thành phần phối hợp với nhauÔn tập: tháp pháo mô-đunÔn tập: pháo nòng đôi4Dữ liệu tuần tự hóa
Lớp có thể tuần tự hóaDanh sách trong InspectorKiểu liệt kê trong InspectorÔn tập: Bảng vật phẩm rơiÔn tập: Quay vật phẩm2Giao diện trong Unity
IDamageableGiao diện và TryGetComponentGetComponentsÔn tập: phím tương tácÔn tập: đối tượng gần nhất trong tầm với5ScriptableObjects
Tài sản dữ liệuChỉ số vũ khíCài đặt dùng chungLưu gióSóng dưới dạng dữ liệuÔn tập: Cơ sở dữ liệu vật phẩmÔn tập: Mua hàng từ cửa hàng8Code có thể tái sử dụng
Phương thức mở rộngSingleton tổng quátCác hàm hỗ trợ tổng quátÔn tập: FindNearest3Sự kiện
Sự kiện C# trong UnityĐăng ký trong OnEnableCác trường UnityEventSự kiện điều khiển UIÔn tập: Cửa sổ bật lên thành tíchÔn tập: Bộ hẹn giờ cửa sổ bật lên6Lưu dữ liệu bằng JSON
JsonUtilityLưu trò chơiTải dữ liệu và giá trị mặc địnhÔn tập: các ô lưuChọn và xóa một ô lưu9Tái sử dụng đối tượng bằng pool
Vì sao cần pool đối tượngPool dùng hàng đợiObjectPool của UnityÔn tập: pool đạnTự luyện tập: Playground Unity