aaron_case Geschrieben 16. August 2019 Melden Share Geschrieben 16. August 2019 Beim folgendem Code (Gekürzt) bekomme ich immer den Error:"NullReferenceException: Object reference not set to an instance of an object". Im Editor habe ich das Objekt aber "hinterlegt". public GameObject trainerPrefab void Start(){ GameObject newEnemy = (GameObject) Instantiate(trainerPrefab,new Vector3(...),Quaternion.identity); } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 16. August 2019 Melden Share Geschrieben 16. August 2019 Warum du die Meldung bekommst, weiß ich jetzt auch nicht so direkt, da du ja schreibst, dass du das trainerPrefab hinterlegt hast. Wobei ich nicht genau weiß, was du mit hinterlegt meinst. Also du hast es im Inspector auf die Public Variable gezogen?! Du solltest aber die Variable newEnemy nicht in der Start bilden, sondern oben, wo auch dein trainerPrefab ist. Ja und dann castest du ja als GameObject, obwohl das TrainerPrefab eh vom Typ GameObject ist und du es mit newEnemy verknüpfst, was ja auch ein GameObject ist. Vielleicht mag er das ja nicht. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 17. August 2019 Melden Share Geschrieben 17. August 2019 Wenn das da oben wirklich der einzige Code ist und die Meldung bei der längeren Zeile auftritt und ganz sicher nicht woanders, dann ist trainerPrefab einfach nicht gesetzt. Der Code ist soweit nämlich okay, und eine andere Stelle gibt es da nicht, wo dieser Fehler entstehen kann. Wenn du dir ganz sicher bist, dass du da ein Objekt reingezogen hast, ist die wahrscheinlichste Fehlerursache, dass du irgendwo versehentlich mal eine zweite Instanz dieser Komponente irgendwo in deine Szene gesetzt hast, eventuell ohne es zu merken. Schau aber erstmal, ob die Fehlermeldung tatsächlich von genau dieser Zeile kommt und ob da nicht noch ein paar Zeilen mehr im Spiel sind. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
aaron_case Geschrieben 18. August 2019 Autor Melden Share Geschrieben 18. August 2019 Ok hier der vollständige Code: using System.Collections; using System.Collections.Generic; using System.Xml; using System.Xml.XPath; using UnityEngine; public class trainerscript : MonoBehaviour { public Texture2D Sprite1; public GameObject trainerPrefab; // Start is called before the first frame update void Start() { XmlDocument document = new XmlDocument(); document.Load("assets/scripts/Vorlagen/trainerpositionen.xml"); XmlNodeList TrainerStamm = document.GetElementsByTagName("Trainer"); for (int i = 1;i == TrainerStamm.Count; i++) { GameObject newEnemy = (GameObject) Instantiate(trainerPrefab,new Vector3(float.Parse(TrainerStamm[i].Attributes.GetNamedItem("x").Value), float.Parse(TrainerStamm[i].Attributes.GetNamedItem("y").Value)),Quaternion.identity); } } // Update is called once per frame void Update() { } } Der Fehler zeigt ganz sciher auf dieses Script und das Script ist auch niergendwo anders reingezogen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 18. August 2019 Melden Share Geschrieben 18. August 2019 Mach dir mal ein paar Zeilen davor, mit Debug.Log. Damit kannst du testen, welche der Variablen jetzt den Wert null hat. Kandidaten sind: TrainerStamm TrainerStamm TrainerStamm.Attributes TrainerStamm.Attributes.GetNamedItem("x") TrainerStamm.Attributes.GetNamedItem("y") Je nachdem, ob es sich hier um Objekte oder Struct-Werte handelt, kann jede dieser Variablen als Wert null haben und deshalb die Exception auslösen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
aaron_case Geschrieben 23. August 2019 Autor Melden Share Geschrieben 23. August 2019 @Sascha XmlNodeList hat keine Definition von Attributes Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 23. August 2019 Melden Share Geschrieben 23. August 2019 Ich hab halt ganz stumpf aufgeschrieben, wo rein syntaktisch eine NullReferenceException auftreten kann. Ich kenne ja die Klassen nicht. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.