Creating and Destroying Game Object
Bài đăng này đã không được cập nhật trong 8 năm
Một số game có một lượng cố định các object trong scene. Nhưng thường có những nhân vật, vật phẩm và những object khác được tạo ra hoặc hủy trong gameplay. Trong Unity, 1 game object có thể được tạo ra bằng cách sử dụng hàm Instantiate
, sẽ tạo ra 1 bản sao của 1 game object đã tồn tại.
public GameObject enemy;
void Start()
{
for (int i = 0; i < 5; i++)
{
Instantiate(enemy);
}
}
Chú ý rằng object từ bản sao được tạo ra sẽ không nhất thiết được hiển thị lên scene. Ta thường dùng 1 prefab được kéo thả vào 1 biến public trong Inspector Panel. Hơn nữa, việc tạo ra 1 game object theo cách này sẽ copy tất cả các Component đã được add vào object nguồn.
Ta cũng có hàm Destroy
để hủy 1 object sau mỗi lần cập nhật frame hay sau một khoảng thời gian ngắn do ta quy định.
void OnCollisionEnter(otherObj: Collision)
{
if (otherObj == "Missile")
Destroy(gameObject, .5f);
}
Chú ý rằng hàm Destroy
có thể hủy 1 Component độc lập mà không làm ảnh hưởng đến bản thân Game Object đó. Có 1 lỗi hay xảy ra là ta thường viết như sau:
{
Destroy (this);
}
Điều này sẽ chỉ hủy script component mà gọi hàm đó chứ không phải hủy cả Game Object mà đoạn script được gắn vào.
Tham khảo
All rights reserved