Hierarchy in jeder Szene beibehalten
Dan Miller-Schroeder- design3
Dan hat, lange bevor er mit Game Development in Kontakt kam, Musik und Film studiert. Er ist begeistert, wie sehr beide Dinge sich mit interaktiven Systemen kombinieren lassen. Bevor er bei design3 angefangen hat zu arbeiten, hat er an Blu-Ray sowie interaktiven DVD Projekten gearbeitet. Wenn Dan dann gerade mal nicht über nicht-lineare Umgebungen nachdenkt, spielt er Schlagzeug und schreibt Musik für die Bands Sleeptalks und Vandella aus San Francisco. Seine Lieblingsspiele: Guild Wars, Diablo II, Star Wars: KOTOR, Borderlands & Call of Duty.- Alle Objekte mit einem Tag belegen.
- Alle Objekte in einen Array einfügen.
- Iterate durch das Array, aber nicht DontDestroyOnLoad benutzen.
- Laded die neue Szene; alle Objekte wurden beibehalten.
Fügt dieses Skript zum Manage- oder Kontroll-Game Objekt und ruft diese Funktion vor jedem Szenen-Ladevorgang auf.
private var allObjects : Object[];
function PreserveObjects () {
allObjects = GameObject.FindGameObjectsWithTag("Preserve") as Object[];
for (allObject in allObjects) {
DontDestroyOnLoad(allObject);
}
}
Um das Beispiel-Projekt zu nutzen:
- Öffene Scene1 und simuliere sie. In der Hierarchy befinden sich ein Würfel sowie eine Kugel. Drücke [L] um Scene2 zu laden. Sie hat einen Zylinder, aber der Würfel und die Kugel aus Szene 1 wurden gelöscht.
- Öffne nun erneut Scene1 und simuliere diese. Nun aber drückst du [P], womit alle Objekte mit dem Preserve-Tag gefunden werden und mit DontDestroyOnLoad belegt werden. Wenn du nun [L] für Szene 2 drückst, wird jene Szene mit Zylinder, Würfel und Kugel geladen.
[http://fileserver.unity-insider.de/PreserveHierarchy.zip]
Download des Beispiel-Projekt



