Tham chiếu tốt hơn tìm kiếm
Thuộc phần Những kiến thức cơ bản về lập trình trong Unity trong hành trình Unity của Coddy. Bài học 59 trên 85.
Một script có thể truy cập đối tượng khác bằng bốn cách: trường được thiết lập trong Inspector, tìm GameObject.Find theo tên, tìm theo tag hoặc tìm FindAnyObjectByType theo kiểu. Với một đối tượng có sẵn trong cảnh ngay từ đầu, code Unity dùng trường Inspector vì ba lý do:
- Tốc độ. Tham chiếu được điền trước khi trò chơi bắt đầu. Mỗi lần tìm kiếm đều duyệt qua các đối tượng trong cảnh, và tìm kiếm trong
Update()sẽ làm việc đó ở mọi khung hình. - An toàn. Tên trong chuỗi sẽ không còn khớp khi ai đó đổi tên đối tượng: Find trả về
nullvà lỗi xuất hiện sau đó, tại bất kỳ dòng nào sử dụng nó. Trường Inspector để trống sẽ gây ra UnassignedReferenceException, trong đó nêu tên trường và script. - Rõ ràng. Inspector cho thấy script phụ thuộc vào những gì. Lệnh gọi Find ẩn điều đó bên trong code.
// Gán một lần trong Inspector: không cần tìm kiếm, đổi tên cũng không ảnh hưởng
[SerializeField] private Transform door;
// Tìm kiếm ở mỗi khung hình và trả về null sau khi đổi tên cửa
void Update()
{
Transform d = GameObject.Find("Door").transform;
}Việc tìm kiếm có lúc cần thiết: với các đối tượng chỉ tồn tại khi trò chơi đang chạy, chẳng hạn như đối tượng được tạo ra trong lúc chơi, và với các script phải hoạt động trong mọi cảnh. Ngay cả khi đó, hãy tìm một lần trong Start() rồi lưu kết quả vào một trường.
Tự làm thử
Bài học này không có thử thách code.
Tất cả bài học trong Những kiến thức cơ bản về lập trình trong Unity
1C# cơ bản trong Unity
Xin chào, UnityBiếnSố thập phân cần có fVăn bản trong ConsoleBiến có thể ghi nhớIf và elseSo sánh các sốÔn tập: Thu thập xu7Vòng lặp và phương thức
Lặp lại với forVòng lặp lồng nhauViết phương thứcPhương thức trả lờiMảngÔn tập: Cầu thang10Tìm đối tượng
Tìm theo tênThẻTìm theo kiểuTham chiếu tốt hơn tìm kiếmNull trong UnityÔn tập: đồng xu gần nhất2Làm cho nó chuyển động
Đặt khối lập phươngDi chuyển theo từng khung hìnhXoay mỗi giâyĐiều khiển bằng các phímÔn tập: Lái khối lập phương5Vectơ
Cộng vectơPhương hướngKhông gian cục bộ và không gian thế giớiTốc độ theo đường chéoKhoảng cách giữa các vậtVector3 là một structÔn tập: Người điều khiển drone8GameObject và thành phần
Tham chiếu trong InspectorLấy một thành phầnThành phần bị thiếuThêm một thành phầnRequireComponentHiện và ẩnÔn tập: Công tắc đèn3Inspector
Các trường trong InspectorSerializeFieldSố thực và MathfThuộc tính trong InspectorÔn tập: thang máy6Biến đổi và hệ phân cấp
Đối tượng cha và conKéo cờ lênTỷ lệNhìn vào các vật thểDi chuyển đến một điểmÔn tập: Mặt trăng quay quanh9Dự án: Bắt lấy ngôi sao
Người bắt saoNgôi sao rơiTự luyện tập: Playground Unity