Einheit C# Instanziierung von prefab und casting auf GameObject
In Unity mit C#, ich bin zu Instanziieren versucht, von einem Fertighaus, und weisen Sie ein Skript, um das neue Objekt. Um dies zu tun, ich glaube, die brauche ich, um das neue Objekt geworfen als GameObject. Doch die Rückkehr-Typ Instanziieren ist UnityEngine.Objekt
Aus der Einheit Handbuch:
public GameObject wreck;
...
void KillSelf () (
...
GameObject wreckClone = (GameObject) Instantiate(wreck, transform.position, transform.rotation);
Diese jedoch, führt zu einer InvalidCastException. Ich habe gesehen, erwähnt auf diesem forum versuchen, diese stattdessen:
UnityEngine.Object uo = Instantiate(...
GameObject go = (GameObject)go;
Diese, jedoch, die Ergebnisse in der gleichen Ausnahme.
Habe ich einige Beiträge suggerieren versucht zu casten mit:
...Instantiate(...) as GameObject;
Diese syntax wird jedoch nicht erscheinen, unterstützt durch den compiler.
Dies ist ziemlich verwirrend. Ich bin das kopieren von kleinen bits des Codes aus dem (vermutlich korrekten) Handbücher und stack overflow Antworten, und Sie nur scheinen nicht zu funktionieren.
Ich bin mir nicht sicher, was für Informationen wären notwendig, um dieses Rätsel lösen, so Fragen Sie mich einfach was Sie brauchen.
Bisher habe ich versucht, beim einloggen das Objekt instanziiert werden, bevor Sie versuchen zu casten. Es zeigt sich, wie ThrownFood(Klon)(UnityEngine.transformieren). Ich weiß nicht, warum es sagen würde, zu verwandeln, wenn. Ich habe nicht alles erzählt geworfen zu werden, wie eine Transformation.
InformationsquelleAutor Don Subert | 2015-03-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Welche version von Unity verwenden Sie? Diese beiden Beispiele kompilieren für mich:
Instanziieren gibt, was Sie werfen.
Wenn Sie werfen eine Transformation Griff, wird es wieder ein transform handle. wenn Sie werfen ein Spiel-Objekt, wird es wieder ein Spiel-Objekt. Sie scheinen vorbei, es ein Spiel-Objekt wenn. Sie könnten versuchen, Gießen Sie es auf einem gameobject im ersten parameter wie folgt:
Die einfachste Antwort auf dein problem bekommen würde das GameObject aus der Transformation mit der Transformation.gameObject-Befehl, etwa so:
Wenn der obige code hat noch Fehler, die Sie möglicherweise neu starten oder installieren Sie die Einheit, wie es funktioniert code.
Aktualisiert die post
InformationsquelleAutor marsh