Creating and Destroying Game Object
Unity2D
4
White

tinywitch viết ngày 23/05/2015

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

Unity Documentation

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

tinywitch

4 bài viết.
7 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
8 5
Khi ta gọi một hàm, nó sẽ chạy đến khi hoàn thành hết các câu lệnh rồi mới return. Điều này có nghĩa là bất kì 1 hành động nào được đặt trong hàm s...
tinywitch viết gần 3 năm trước
8 5
White
7 3
Trong Unity Editor, ta có thể tạo ra các thay đổi cho các thuộc tính của Component bằng cách sử dụng Inspector. Chẳng hạn thay đổi giá trị của Tran...
tinywitch viết gần 3 năm trước
7 3
White
4 1
Một script trong Unity không giống như ý tưởng viết một chương trình truyền thống, nghĩa là các đoạn code vẫn tiếp tục được chạy cho đến khi hết vò...
tinywitch viết gần 3 năm trước
4 1
Bài viết liên quan
White
4 1
Một script trong Unity không giống như ý tưởng viết một chương trình truyền thống, nghĩa là các đoạn code vẫn tiếp tục được chạy cho đến khi hết vò...
tinywitch viết gần 3 năm trước
4 1
White
7 3
Trong Unity Editor, ta có thể tạo ra các thay đổi cho các thuộc tính của Component bằng cách sử dụng Inspector. Chẳng hạn thay đổi giá trị của Tran...
tinywitch viết gần 3 năm trước
7 3
White
8 5
Khi ta gọi một hàm, nó sẽ chạy đến khi hoàn thành hết các câu lệnh rồi mới return. Điều này có nghĩa là bất kì 1 hành động nào được đặt trong hàm s...
tinywitch viết gần 3 năm trước
8 5
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
4 bài viết.
7 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!