Tạo một đối tượng dựa trên Prefab từ tập lệnh
Môi trường xác minh
- Windows
-
- cửa sổ 11
- Biên tập viên Unity
-
- 2021.3.3F1
- Gói hệ thống đầu vào
-
- 1.3.0
Điều kiện tiên quyết cho mẹo này
Các cài đặt sau đây đã được thực hiện trước làm tiền đề cho mô tả về mẹo này.
Tạo một đối tượng dựa trên Prefab trong tập lệnh
Trong các Mẹo trước, chúng tôi đã đặt các đối tượng từ Prefab vào chế độ xem, nhưng trong trường hợp này, chúng tôi đặt một số đối tượng được xác định trước và khởi chạy trò chơi. Tuy nhiên, một số trò chơi có thể muốn thêm các đối tượng động trong khi trò chơi đang chạy. Trong trường hợp đó, bạn sẽ phải thêm nó từ nhà lắp ghép trong tập lệnh.
Tạo mẫu
Sau khi triển khai dự án mới, hãy đặt nút. Hãy thử tạo một đối tượng từ nhà lắp ghép mỗi khi chúng ta nhấp vào nút.
Tạo một prefab. Đây là thủ tục tương tự như các mẹo trước.
Tạo một tập lệnh để thêm đối tượng vào lần tiếp theo bạn nhấp vào nút. ButtonEvent
Để tên là .
using UnityEngine;
public class ButtonEvent : MonoBehaviour
{
[SerializeField] private GameObject SpritePrefab;
public void OnClick()
{
// Instantiate にプレハブを渡すとそれをもとに新しいオブジェクトを生成する
var obj = Instantiate(SpritePrefab);
// 配置位置はランダムに
obj.transform.localPosition = new Vector3(Random.value * 6 - 3, Random.value * 6 - 3);
}
}
GameObject
Xác định trường để bạn có thể đặt trước nhà lắp ghép nào sẽ được tạo dựa trên.
Instantiate
Bạn có thể truyền một phương thức để tạo một GameObject
đối tượng mới dựa trên đối tượng đó.
Vị trí của đối tượng được tạo trở thành nguồn gốc, và cho dù có bao nhiêu đối tượng được tạo ra, các đối tượng chồng chéo lên nhau và rất khó hiểu, vì vậy vị trí được đặt ngẫu nhiên sau khi tạo. Giá trị điều chỉnh vị trí là phù hợp vì nó là một mẫu.
Đính kèm tập lệnh vào EventSystem.
GameObject
được thiết lập vì vậy thả prefab ở đây.
Khi nút được nhấp, phương thức được OnClick
gọi.
Thực hiện mẫu
Sau khi tạo, hãy chạy trò chơi và nhấp vào nút. Mỗi nhấp chuột sẽ tạo ra một đối tượng.
Tất nhiên, vì nó được tạo dựa trên prefab, nếu giá trị của prefab thay đổi, đối tượng được tạo sẽ được tạo theo giá trị đó.