Thêm một thành phần
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 46 trên 85.
gameObject.AddComponent<T>() thêm một thành phần kiểu T mới vào đối tượng trong khi trò chơi đang chạy, rồi trả về thành phần đó để bạn thiết lập trong các dòng tiếp theo. Thành phần này thuộc về GameObject, mà tập lệnh có thể truy cập thông qua gameObject. Đống lửa trại này tự phát ra ánh sáng màu cam ấm áp khi trò chơi bắt đầu:
void Start()
{
Light glow = gameObject.AddComponent<Light>();
glow.color = new Color(1f, 0.5f, 0f);
glow.intensity = 2f;
}Thành phần được thêm theo cách này sẽ tồn tại trong khi trò chơi chạy. Dừng chế độ Chơi, đối tượng sẽ trở về trạng thái đã lưu trong cảnh, không có Light. Các tập lệnh của bạn cũng là thành phần: gameObject.AddComponent<Spinner>() thêm một Spinner và bắt đầu chạy như bất kỳ tập lệnh nào khác.
Bạn có thể thêm hầu hết thành phần nhiều lần, nhưng một số thì không: mỗi đối tượng chỉ chứa tối đa một Rigidbody. Nếu yêu cầu thêm Rigidbody thứ hai, Console sẽ hiện cảnh báo thay vào đó: Can't add component 'Rigidbody'. Với đoạn code có thể chạy nhiều lần, hãy kiểm tra xem đối tượng đã có thành phần đó chưa trước khi thêm.
Thử thách
Trung bìnhPhím Space làm cây cọ rung lên, quả dừa rơi xuống.
- Trong
Update(), khi nhấnInput.GetKeyDown(KeyCode.Space), hãy thêm một Rigidbody bằnggameObject.AddComponent<Rigidbody>(). - Chỉ thêm Rigidbody khi quả dừa chưa có:
!TryGetComponent(out Rigidbody rb). Nhấn Space lần thứ hai không thêm Rigidbody thứ hai.
Nhấn Chơi rồi nhấn Space: quả dừa rơi xuống cát. Sau đó nhấn Kiểm tra.
Tự làm thử
using UnityEngine;
public class CoconutDrop : MonoBehaviour
{
void Update()
{
// Space: thêm Rigidbody nếu quả dừa chưa có
}
}
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 thang2Là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