Felix K. Geschrieben 9. August 2016 Melden Share Geschrieben 9. August 2016 Hallo, gerade ist in mir die Frage aufgekommen was Debug.Log() im Build macht. In der Script-Ref steht das die Ausgabe nur auf der Unity-Console stattfindet. Wird es überhaupt ausgeführt, bzw wird es beim Compilieren mit berücksichtigt? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Silveryard Geschrieben 9. August 2016 Melden Share Geschrieben 9. August 2016 Es wird generell in der Konsole ausgegeben. Also auch in Builds. Und das zieht sogar ein wenig Performance. Für Release Builds also am besten mit einem global define raus nehmen. So machen wirs. Außer den wichtigsten Logs für Diagnosezwecke natürlich Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Felix K. Geschrieben 9. August 2016 Autor Melden Share Geschrieben 9. August 2016 Hi, danke für deine hilfreiche Antwort. Ich war mir eben unsicher ob das Debug.Log() mit beim Compilieren überhaupt berücksichtigt wird, da es ja auch noch den Debug.logger() gibt. Aber da wird es ja sicher das Selbe sein. Ich habe jetzt meine relevanten Log's mit verfügbaren directiven versehen. https://docs.unity3d.com/Manual/PlatformDependentCompilation.html Landen eigentlich die Debug-Ausgaben im AppData in einem File? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
MaZy Geschrieben 10. August 2016 Melden Share Geschrieben 10. August 2016 Ich weiß nur, dass die Debug Ausgaben in den selben Ordner wie das Spiel selbst sind. Da ist eine output.txt Datei. Allerdings weiß ich jetzt nicht ob man dafür Build Development Version haben muss. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Silveryard Geschrieben 11. August 2016 Melden Share Geschrieben 11. August 2016 Das ganze funktioniert auch im Release Build. Mit #if DEVELOPEMENT_BUILD kann man das ganze nur im Debug Build ausgeben. Manches will man aber drin lassen. Und das meiste wahrscheinlich eh irgendwann raus schmeißen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Felix K. Geschrieben 11. August 2016 Autor Melden Share Geschrieben 11. August 2016 So habe es mal getestet. void Start() { Debug.Log("Standard Log"); #if UNITY_EDITOR Debug.Log("Editor Log"); #endif #if UNITY_EDITOR_WIN Debug.Log("Editor Windows Log"); #endif // Einzige Ausgabe beim Ausführen des Build. #if UNITY_STANDALONE_WIN // Wird beim Umschalten auf eine andere Plattform ausgegraut. Debug.Log("Target Windows Log"); #endif } Alle Ausgaben erscheinen auf der Console in Unity. Nicht zutreffendes wird gleich im Skript ausgegraut. Z.B.: Wenn das Skript ein Nutzer auf OSX ausführen würde, ist der Code zwischen: #if UNITY_EDITOR_WIN Debug.Log("Editor Windows Log"); #endif ausgegraut. Auf meinem System ensteht im Unterordner, des Buildordner, "Projektname"_Data das File output.txt. Dort stehen neben anderen Infos nach dem Ausführen auch: "Target Windows Log" drin. MfG Felix Hier nochmal der Link mit den Directiven https://docs.unity3d...ompilation.html Edit: Da war Silveryard schneller mit schreiben. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Mark Geschrieben 11. August 2016 Melden Share Geschrieben 11. August 2016 Tipp: using UnityEngine; using System.Diagnostics; public static class Logger { [Conditional("DEVELOPEMENT_BUILD")] public static void Dev(object what) { Debug.Log(what); } [Conditional("UNITY_EDITOR")] public static void Editor(object what) { Debug.Log(what); } [Conditional("UNITY_EDITOR_WIN")] public static void EditorWin(object what) { Debug.Log(what); } public static void Log(object what) { Debug.Log(what); } } void Start() { Logger.Dev("hahahaha"); // nur bei #if DEVELOPEMENT_BUILD Logger.Editor("hahahaha"); // nur bei #if UNITY_EDITOR Logger.EditorWin("hahahaha"); // nur bei #if UNITY_EDITOR_WIN Logger.Log("hahahaha"); // immer } Quelle So spart man sich die #if direktiven im ganzen Code. 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.