Unity - GameObject Destruction
Việc phá hủy GameObjects cũng quan trọng như việc khởi tạo. Trong chương này, chúng ta sẽ học cách tiêu diệt GameObjects.
May mắn thay, việc tiêu diệt GameObjects cũng dễ dàng như việc tạo ra chúng. Bạn chỉ cần một tham chiếu đến đối tượng sẽ bị phá hủy và gọiDestroy() phương thức với tham chiếu này làm tham số.
Bây giờ, chúng ta hãy thử tạo ra 5 hình lục giác sẽ tự phá hủy khi nhấn một phím được chỉ định.
Hãy để chúng tôi tạo một tập lệnh mới có tên HexagonDestroyervà mở nó trong Visual Studio. Chúng tôi sẽ bắt đầu bằng cách công khaiKeyCodeBiến đổi. Mã khóa được sử dụng để chỉ định một phím trên bàn phím tiêu chuẩn và lớp Đầu vào trong các phương thức của nó sử dụng nó. Bằng cách đặt biến này ở chế độ công khai, như chúng ta đã làm với Rigidbody và Prefabs trước đây, chúng ta có thể làm cho nó có thể truy cập được thông qua trình chỉnh sửa. Khi biến được đặt ở chế độ công khai, chúng ta không cầnhardcodecác giá trị như “KeyCode.A” vào mã. Mã có thể được thực hiện linh hoạt với nhiều đối tượng tùy thích.
public class HexagonDestroyer : MonoBehaviour {
public KeyCode keyToDestroy;
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(keyToDestroy)) {
Destroy (gameObject);
}
}
}
Quan sát cách chúng tôi sử dụng biến có tên “gameObject” (g nhỏ, viết hoa O) trong phương pháp. Điều này mớigameObject biến (thuộc loại GameObject) được sử dụng để tham chiếu đến gameObject mà tập lệnh này được đính kèm. Nếu bạn đính kèm tập lệnh này trên nhiều đối tượng, tất cả chúng sẽ phản ứng theo cùng một cách bất cứ khi nào biến này có liên quan.
Tuy nhiên, đừng nhầm lẫn giữa hai điều này.
GameObject với G viết hoa và O là class bao gồm tất cả các GameObject và cung cấp các phương thức tiêu chuẩn như Instantiate, Destroy và các phương thức để tìm nạp các thành phần.
gameObject với một small g và viết hoa O là cụ thể instance của một GameObject, được sử dụng để tham chiếu đến gameObject mà tập lệnh này hiện được đính kèm.
Bây giờ chúng ta hãy biên dịch mã của chúng ta và quay lại Unity.
Bây giờ, chúng ta sẽ tạo một hình lục giác mới và đính kèm tập lệnh của chúng ta vào nó. Tiếp theo, nhấp chuột phải vào gameObject trong hệ thống phân cấp và chọnDuplicate. Một sprite mới được tạo trong hệ thống phân cấp; bạn nên sử dụngMovecông cụ để định vị lại nó. Lặp lại các bước để tạo các hình lục giác tương tự.
Nhấp vào từng hình lục giác và xem các thành phần tập lệnh của chúng. Giờ đây, bạn có thể đặt các phím riêng lẻ để GameObject tự hủy khi phím đó được nhấn. Ví dụ: chúng ta hãy tạo 5 hình lục giác và đặt chúng để phá hủy khi nhấn các phím A, S, D, F và G.
Bạn có thể đặt cùng một phím trên nhiều hình lục giác và tất cả chúng sẽ tự hủy đồng thời khi phím được nhấn; đây là một ví dụ về việc sử dụnggameObject tham chiếu, mà bạn có thể sử dụng để tham chiếu đến các đối tượng riêng lẻ bằng cách sử dụng tập lệnh mà không cần phải đặt chúng riêng lẻ.
Cùng một phím có thể được đặt trên nhiều hình lục giác và tất cả chúng sẽ tự hủy đồng thời khi phím được nhấn; đây là một ví dụ về việc sử dụnggameObject tham chiếu, mà bạn có thể sử dụng để tham chiếu đến các đối tượng riêng lẻ bằng cách sử dụng tập lệnh mà không cần phải đặt chúng riêng lẻ.
Điều quan trọng là phải hiểu rằng phá hủy một GameObject không có nghĩa là một đối tượng sẽ vỡ hoặc phát nổ. Việc phá hủy một đối tượng sẽ đơn giản (và ngay lập tức) chấm dứt sự tồn tại của nó cho đến khi trò chơi (và mã của nó) có liên quan. Các liên kết đến đối tượng này và các tham chiếu của nó hiện đã bị hỏng và việc cố gắng truy cập hoặc sử dụng một trong số chúng thường sẽ dẫn đến lỗi và sự cố.