Duplizieren bei DontDestroyOnLoad verhindern?
Hallo
Ich möchte in Unity mein GameObject Scenenübergreifend machen, was auch funktioniert. Wenn ich jedoch zurück auf die Scene wechsle bei der ich das DontDestroyOnLoad ausführe, wird das ganze dupliziert, was ich jedoch nicht möchte. Ich möchte also, dass es in diesem Fall den Scriptholder nur EINMAL erstellt und nicht beim Wechsel zu dieser Scene neu erstellt. Gibt es dazu eine Alternative?
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Unity
Hi David599,
Du musst Dir innerhalb des Scripts merken, dass Du schon erzeugt wurdest:
public class ScriptHolder : MonoBehaviour {
private static ScriptHolder _instance;
private void Awake() {
if (_instance) {
Destroy(gameObject); // hier zerstört Du sich selbst, wenn Du bereits existierst.
return;
}
_instance = this;
DontDestroyOnLoad(gameObject);
}
}
Woher ich das weiß:Berufserfahrung – Indie Game Entwickler & Content Creator auf YouTube
Mein Problem das ich jetzt habe ist, dass meine Buttons nach dem Scenenwechsel nicht mehr funktionieren bzw. in meinem Script die Werte nicht mehr geändert werden.