Jaimi93 Geschrieben 30. Juni 2022 Melden Share Geschrieben 30. Juni 2022 Hallo 😄 Ich wollte gerade mein Spiel rendern lassen, um die Geschwindigkeit meiner Hindernisse im fertigen Spiel zu testen. Doch leider will Unity mir das Spiel nicht rendern. Es hat ein Problem mit der Art und Weise wie ich das XML Dokument verknüpft habe. Im Testmodus läuft alles super. Keine Probleme. Auch in der Unity Dokumentation habe ich schon nachgeschaut, um sicher zu gehen, dass ich nicht einen Fehler gemacht habe. Trotzdem bemängelt Unity: Zitat 1) Assets\Skripts\ImportQuestions.cs(18,30): error CS0103: The name 'AssetDatabase' does not exist in the current context 2) Error building Player because scripts had compiler errors 3) Build completed with a result of 'Failed' in 2 seconds (1648 ms) UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) 4) UnityEditor.BuildPlayerWindow+BuildMethodException: 2 errors at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (UnityEditor.BuildPlayerOptions options) [0x002d8] in <0cde216a590a4d6fbc3d7db7ac203c5d>:0 at UnityEditor.BuildPlayerWindow.CallBuildMethods (System.Boolean askForBuildLocation, UnityEditor.BuildOptions defaultBuildOptions) [0x00080] in <0cde216a590a4d6fbc3d7db7ac203c5d>:0 UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) Der Code, über den sich Unity aufregt: using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; using System.Xml; using System.Xml.Serialization; using UnityEditor; [XmlRoot("QuestionCollector")] public class ImportQuestions { [XmlArray("Questions")] [XmlArrayItem("Q")] public List<QuestionsStructure> items = new List<QuestionsStructure>(); public static ImportQuestions Load(string sPath) { TextAsset _xmlFile = AssetDatabase.LoadAssetAtPath<TextAsset>("Assets/XML/Questions.xml"); XmlSerializer serializer = new XmlSerializer(typeof(ImportQuestions)); StringReader reader = new StringReader(_xmlFile.text); ImportQuestions item = serializer.Deserialize(reader) as ImportQuestions; reader.Close(); return item; } } Dass Unity das "AssetDatabase" nicht passt, habe ich verstanden. Aber warum es sich jetzt darüber aufregt, obwohl es sonst auch immer funktioniert hat, finde ich komisch. Vielen Dank schon mal im Voraus für die Hilfe✌️ Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 30. Juni 2022 Melden Share Geschrieben 30. Juni 2022 using UnityEditor; Du kannst diesen Namespace nicht in Scripts benutzen, die im Build landen. Es gibt die UnityEditor.dll in Builds schlicht nicht, deshalb kannst du sie dort auch nicht benutzen. AssetDatabase fällt damit raus. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Peanut Geschrieben 1. Juli 2022 Melden Share Geschrieben 1. Juli 2022 Ich glaube mit : Resources.Load<T>("AssetName"); Kannst du auch das Asset im Build finden und "laden". Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Jaimi93 Geschrieben 1. Juli 2022 Autor Melden Share Geschrieben 1. Juli 2022 @Sascha Danke für den Tipp. Gut zu wissen. Dann werde ich das auch nicht mehr verwenden 😅 @Peanut Auch ein Danke an Dich für deinen Tipp. Es funktioniert jetzt 😄 Leider war ich erstmal etwas verzeifelt, weil es meine XML Datei nicht finden wollte. (Deshalb hab ich bisher AssetDatabase verwendet.) Durch die Documentary hab ich dann endlich festgestellt, dass ich einen extra Resources Ordner brauche, wo ich den Ordner mit der Datei reinziehen muss. Dann hat es funktioniert und ich bin mehr als nur froh darüber ✌️😅 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 1. Juli 2022 Melden Share Geschrieben 1. Juli 2022 Naja, ist ein Weg. Du kannst auch einfach ein TextAsset-Feld machen und deine XML-Datei da reinziehen. 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.