2016-05-06 6 views
1

Offenbar ist dies eine Frage der Anfänger (und ich bin), aber es macht mich verrückt und ich konnte jede Erwähnung nicht gefunden:Unity3d-Editor: Wie verhindert man, dass Änderungen beim Beenden des Wiedergabemodus rückgängig gemacht werden?

Ich vergesse manchmal Play-Modus und gehen auf den Aufbau meiner UI machen Objekte zu beenden und Änderungen, nur um zu erkennen, dass ich immernoch in Play Mode bin und sobald ich die Play-Taste drücke, werden diese gelöscht! Ich nehme an, das Unity Editor seine Gründe hat, zu ermöglichen, dass die Bearbeitung von Scripts/Szenen während in Play Mode (würde gerne einige Beispiele, vielleicht testen Szenen zu hören?), Aber meine Hauptfrage ist hier:

Sind gibt es eine Möglichkeit für mich, dieses Verhalten zu verhindern? Oder zumindest ein Trick, den Sie verwenden, um zu verhindern, me Änderungen vornehmen, während in Spielmodus? (Anders als immer paranoid darüber und wird ständig überprüft ...)

Danke

PS. Seufzer Zeit zurück zu Unity zu gehen und diese UI wiederherzustellen, die ich verloren habe ...

+0

es ist nur, wie Einheit ist. Wenn Sie es nicht mögen, verwenden Sie es nicht. Beachten Sie, dass es im ** Asset Store ** eine Reihe von Dingen gibt, mit denen Sie während der Wiedergabe "sparen" und andere Variationen vornehmen können. ich hoffe es hilft. – Fattie

+0

danke @Joe Blow! – FotisK

Antwort

2

Andere Unity Coder hatten dieses Problem vor mir und sie kamen mit einer sauberen Lösung. Im Wiedergabemodus "Playmode tönung" wird die Benutzeroberfläche auf eine andere Farbe eingestellt.

Sie die Details hier lesen (posted ursprünglich 2009, aber ich habe überprüft, es funktioniert immer noch in neuester Unity 5.3):

http://answers.unity3d.com/questions/9159/best-strategies-for-not-accidently-editing-whilst.html

+0

Danke @Yinch! Ihr Link zu den Unity-Diskussionen hat viele gute Lösungen hervorgebracht - Wie Sie bereits erwähnt haben, war das Ändern des * playmode tint * wahrscheinlich der hilfreichste von allen. Außerdem habe ich dort einen Tipp gelesen, wie man das * maximize on play * aktivieren kann - und so die Panels komplett verdeckt. – FotisK

3

Es gibt keine Einstellungen zu verhindern, dass Dinge während der Wiedergabe-Modus zu ändern, aber es gibt Möglichkeiten, die Wahrscheinlichkeit von Änderungen während des Spielmodus zu verringern.

. Bearbeiten ->Einstellungen ... ->Farben. Jetzt, auf der rechten Seite ändern Playmode Tint zu red. Das erinnert Sie daran, dass Sie Änderungen im Spielmodus vornehmen.

.Click auf das Zahnrad-Symbol jeder Komponente, die Sie während des Spiels ändern klicken Sie dann auf Copy Component. Wenn Sie mit dem Spielmodus fertig sind, wählen Sie die Komponente aus, deren Änderungen beibehalten werden sollen. Klicken Sie erneut auf das Zahnradsymbol, und klicken Sie diesmal auf Komponentenwerte einfügen.

enter image description here

.Write ein Editor-Plugin, das für Sie tun. Das ist hart aber möglich.

Verwenden Sie das Ereignis, um herauszufinden, wann der Spielmodus aufgerufen wird. Speichern Sie alle GameObject public wichtige Variablen wie transform/rigidbody Eigenschaften in einer Liste.

Warten Sie, bis das stop-Ereignis ausgelöst wird, und fragen Sie sich, welche GameObjects die Einstellungen überschreiben sollen. Überschreibe dann die Eigenschaften der ausgewählten GameObjects. Das war's.

Nützliche APIs für diese:

EditorApplication.isPlaying 
EditorApplication.isPaused 
EditorApplication.isPlayingOrWillChangePlaymode 
EditorApplication.playmodeStateChanged += callBackFunc; 
EditorApplication.HierarchyWindowItemCallback 
EditorApplication.ProjectWindowItemCallback 

Hinweis: Nach Unity roadmap, eine Funktion, die Sie Spielzeit Änderungen in der Konstruktion speichern können und wird in Kürze freigegeben werden, aber die scheint über die einzige zu sein, Weg zu dieser Zeit.

+0

Gut zu wissen, dass sie daran arbeiten! –

+1

@ gjttt1 Ja, das ist Schmerz und sie begannen damit zu arbeiten, nachdem sie viele Beschwerden bekommen hatten. Sie sind auch kürzlich der .NET-Foundation beigetreten und arbeiten an .NET 6. Zu viele gute Dinge kommen in der zukünftigen Unity-Version. – Programmer

+0

Vielen Dank @Programmer für eine schöne und detaillierte Antwort! Ich kann nicht zwei Antworten "akzeptieren" (ich wünschte, ich könnte, weil Ihre Antwort es auch verdient), aber zumindest ich upvoting es! – FotisK

0

Sie können Objekte auswählen, die Sie im Wiedergabemodus behalten möchten, kopieren Sie sie mit Ctrl + C, und fügen Sie sie dann wieder mit Ctrl + V ein, nachdem Sie in den Bearbeitungsmodus zurückgekehrt sind. Dann können Sie die Originale aus der Szene löschen oder Werte von einzelnen Komponenten wie @Programmer vorgeschlagen kopieren.

Verwandte Themen