Ich habe ein Fertighaus namens "Straße". Wie kann ich es instanziieren (mit C #), sodass es zunächst an den Koordinaten angezeigt wird (5, 5, 5)
?
Ich habe ein Fertighaus namens "Straße". Wie kann ich es instanziieren (mit C #), sodass es zunächst an den Koordinaten angezeigt wird (5, 5, 5)
?
Antworten:
Wenn Sie das Fertighaus in einem Verzeichnis ablegen, das in Resources
Ihrem Verzeichnis aufgerufen wird Assets
, können Sie die Resources
Klasse und ihre load
Funktionalität verwenden. Dadurch wird ein Fertighaus als geladenGameObject
, das dann instanziiert werden kann.
Zum Beispiel:
GameObject myRoadInstance = Instantiate(Resources.Load("road")) as GameObject;
Erstellt eine Instanz Ihres "Road" -Profils in der Spielwelt.
Sie können entweder die Position festlegen, indem Sie die Transformation ändern, oder Sie können die alternative Version von verwenden Instantiate
, um eine Position anzugeben.
GameObject myRoadInstance =
Instantiate(Resources.Load("road"),
new Vector3(5, 5, 5),
Quaternion.identity) as GameObject;
Das Unity-Handbuch enthält ein Beispiel:
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);
}
}
}
Beachten Sie, dass der Vektor3 als zweiter Parameter und die Quaternion als dritter Parameter übergeben wurden.
Vector3 position = new Vector3(5, 5, 5);
GameObject newGameObject = Instantiate(GameObjectToInstantiate);
newGameObject.transform.position = position;
Sie müssen immer wissen, was Sie instanziieren werden, aber von dort aus rufen Sie einfach Instantiate als Funktion auf und laden es in ein neues gameObject. Sie müssen es separat positionieren.