HilfeBitte Geschrieben 27. Juli 2020 Melden Share Geschrieben 27. Juli 2020 Mir wird immer diese Fehlermeldung Angezeigt aber ich weiß nicht warum Würde mich über eine Antwort freuen using System.Collections; using System.Collections.Generic; using System.Security.Cryptography; using UnityEngine; public class LevelGenereter : MonoBehaviour { [SerializeField] private Transform levelPart_Start; [SerializeField] private Transform levelPart_1; private void Awake() { Transform lastLevelPartTransform; lastLevelPartTransform = SpawnLevelPart(levelPart_Start.Find("EndPosition").position); lastLevelPartTransform = SpawnLevelPart(lastLevelPartTransform.Find("EndPosition").position); lastLevelPartTransform = SpawnLevelPart(lastLevelPartTransform.Find("EndPosition").position); lastLevelPartTransform = SpawnLevelPart(lastLevelPartTransform.Find("EndPosition").position); lastLevelPartTransform = SpawnLevelPart(lastLevelPartTransform.Find("EndPosition").position); lastLevelPartTransform = SpawnLevelPart(lastLevelPartTransform.Find("EndPosition").position); } private Transform SpawnLevelPart(Vector3 spawnPosition) { Transform levelPartTransform = Instantiate(levelPart_1, spawnPosition, Quaternion.identity); return levelPartTransform; } } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
chrische5 Geschrieben 27. Juli 2020 Melden Share Geschrieben 27. Juli 2020 Hallo Ich sende dir mal das: http://plbm.com/?p=221 Christoph Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Peanut Geschrieben 28. Juli 2020 Melden Share Geschrieben 28. Juli 2020 Also der Fehler ist in Zeile 15 . Hast du den alle Transforms im Inspector angehängt ? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
HilfeBitte Geschrieben 28. Juli 2020 Autor Melden Share Geschrieben 28. Juli 2020 😅 hab das wie in einem Video gemacht bin noch Anfänger des wegen weiß ich es leider nicht sorry😅 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
HilfeBitte Geschrieben 28. Juli 2020 Autor Melden Share Geschrieben 28. Juli 2020 vor 14 Stunden schrieb Peanut: Also der Fehler ist in Zeile 15 . Hast du den alle Transforms im Inspector angehängt ? Weiß ich leider nicht bin ein Anfänger hab das aus einem Video 😅 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Peanut Geschrieben 28. Juli 2020 Melden Share Geschrieben 28. Juli 2020 Könntest du ein Screenshot von dem Script machen und ein ein Screenshot von dem Gameobject(Mit Inspector) an dem das Script attached ist Also Unity versucht dir zu sagen das in Zeile 15 deines Scriptes eine NullPointerException ausgelöst wird das heißt soviel das dein Script auf irgendetwas zugreifen möchte das nicht zugewiesen wurde. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 29. Juli 2020 Melden Share Geschrieben 29. Juli 2020 Bitte keine Screenshots von Code -.- Einfach hier über dem Textfeld auf <> klicken und den Code da einfügen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
HilfeBitte Geschrieben 29. Juli 2020 Autor Melden Share Geschrieben 29. Juli 2020 vor 13 Stunden schrieb Peanut: Könntest du ein Screenshot von dem Script machen und ein ein Screenshot von dem Gameobject(Mit Inspector) an dem das Script attached ist Also Unity versucht dir zu sagen das in Zeile 15 deines Scriptes eine NullPointerException ausgelöst wird das heißt soviel das dein Script auf irgendetwas zugreifen möchte das nicht zugewiesen wurde. hoffe das Ist das was du Brauchst using System.Collections; using System.Collections.Generic; using System.Security.Cryptography; using UnityEngine; public class LevelGenereter : MonoBehaviour { [SerializeField] private Transform levelPart_Start; [SerializeField] private Transform levelPart_1; private void Awake() { Transform lastLevelPartTransform; lastLevelPartTransform = SpawnLevelPart(levelPart_Start.Find("EndPosition").position); lastLevelPartTransform = SpawnLevelPart(lastLevelPartTransform.Find("EndPosition").position); lastLevelPartTransform = SpawnLevelPart(lastLevelPartTransform.Find("EndPosition").position); lastLevelPartTransform = SpawnLevelPart(lastLevelPartTransform.Find("EndPosition").position); lastLevelPartTransform = SpawnLevelPart(lastLevelPartTransform.Find("EndPosition").position); lastLevelPartTransform = SpawnLevelPart(lastLevelPartTransform.Find("EndPosition").position); } private Transform SpawnLevelPart(Vector3 spawnPosition) { Transform levelPartTransform = Instantiate(levelPart_1, spawnPosition, Quaternion.identity); return levelPartTransform; } } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 29. Juli 2020 Melden Share Geschrieben 29. Juli 2020 NullReferenceExceptions treten immer nur auf, wenn links von einem Punkt ein Ausdruck steht, der zu null evaluiert. Zum Beispiel eine Variable, deren Wert null ist oder ein Methodenaufruf, der null zurückgibt. Man kann sich also auf der Suche innerhalb der von der Exception angegeben Zeile auf die Ausdrücke links von einem Punkt beschränken. Zeile 15 ist, wenn ich mich nicht verzählt habe, eine von denen hier: lastLevelPartTransform = SpawnLevelPart(lastLevelPartTransform.Find("EndPosition").position); Das heißt, mögliche Kandidaten sind lastLevelPartTransform und lastLevelPartTransform.Find("EndPosition") Ersteres scheint mir sehr unwahrscheinlich, weil ich dafür keine Möglichkeit sehe, außer dass Instantiate null zurückgibt, was es, soweit ich weiß, nicht kann. Würde man null als Parameter übergeben, fliegt eher eine Exception. Bleibt also Zweiteres, und das ist schon wahrscheinlicher. Offenbar dein levelPart_1-GameObject kein Kind-Objekt, das "EndPosition" heißt. Dass der Debugger dir hier nicht helfen kann, sondern verzweifelt eine NullReferenceException zur Laufzeit ausspucken muss, ist genau der Grund, warum von diesem Find-Funktionen abzuraten ist. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
HilfeBitte Geschrieben 29. Juli 2020 Autor Melden Share Geschrieben 29. Juli 2020 ok was sollte ich dann am Besten dafür nehmen ? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
chrische5 Geschrieben 29. Juli 2020 Melden Share Geschrieben 29. Juli 2020 Hallo Schau dir mal den link an, den ich gepostet habe. Damit kannst du versuchen, die Vermutung von @Saschazu bestätigen oder eben nicht. Du kannst ja immer auf auch gegen Null abfragen oder eben mit Debug.Log arbeiten. Christoph Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 29. Juli 2020 Melden Share Geschrieben 29. Juli 2020 vor 45 Minuten schrieb HilfeBitte: ok was sollte ich dann am Besten dafür nehmen ? Z.B. so etwas: public class LevelGenerationElement : MonoBehaviour { public Transform endPoint; } Das packst du auf deine Elemente, und in deinem Generator-Script steht dann auch [SerializeField] private LevelGenerationElement levelPart_1; statt [SerializeField] private Transform levelPart_1; Der Endpunkt wird im Editor reingezogen, und statt per Namen nach dem Objekt zu suchen, machst du dann lastLevelPartTransform = SpawnLevelPart(lastLevelPartTransform.endPoint.position); Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
HilfeBitte Geschrieben 29. Juli 2020 Autor Melden Share Geschrieben 29. Juli 2020 Er sagt mir dann aber das er LevelGenerationElement nicht findet Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 30. Juli 2020 Melden Share Geschrieben 30. Juli 2020 Dann hast du einfach mal einen Teil meines Posts ignoriert. Gleich der erste Code ist eine neue Komponente, die du dann auch in dein Projekt tun müsstest. 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.