Tôi có một prefab gọi là "đường". Làm thế nào tôi có thể khởi tạo nó (sử dụng C #) sao cho nó xuất hiện ban đầu tại tọa độ (5, 5, 5)
?
Tôi có một prefab gọi là "đường". Làm thế nào tôi có thể khởi tạo nó (sử dụng C #) sao cho nó xuất hiện ban đầu tại tọa độ (5, 5, 5)
?
Câu trả lời:
Nếu bạn đặt prefab vào một thư mục được gọi Resources
trong Assets
thư mục của bạn , bạn sẽ có thể sử dụng Resources
lớp và load
chức năng của nó . Điều này sẽ tải một prefab lên như một GameObject
, sau đó có thể được khởi tạo.
Ví dụ:
GameObject myRoadInstance = Instantiate(Resources.Load("road")) as GameObject;
Sẽ tạo một ví dụ về prefab "đường" của bạn trong thế giới trò chơi.
Bạn có thể đặt vị trí của nó bằng cách sửa đổi biến đổi của nó hoặc bạn có thể sử dụng phiên bản thay thế của Instantiate
để chỉ định vị trí.
GameObject myRoadInstance =
Instantiate(Resources.Load("road"),
new Vector3(5, 5, 5),
Quaternion.identity) as GameObject;
Các tay Unity chứa một ví dụ:
public class ExampleClass : MonoBehaviour {
public Transform prefab;
void Start() {
for (int i = 0; i < 10; i++) {
Instantiate(prefab, new Vector3(i * 2.0F, 0, 0), Quaternion.identity);
}
}
}
Lưu ý vector3 được truyền dưới dạng tham số thứ hai và bậc bốn là thứ ba.
Vector3 position = new Vector3(5, 5, 5);
GameObject newGameObject = Instantiate(GameObjectToInstantiate);
newGameObject.transform.position = position;
Bạn sẽ luôn cần biết những gì bạn sẽ khởi tạo, nhưng từ đó bạn chỉ cần gọi Instantiate là một hàm và tải nó vào một gameObject mới. Bạn phải định vị nó một cách riêng biệt.