Jump to content
Unity Insider Forum

save system


turritom

Recommended Posts

ich bin gerade am überlegen wie ich am besten ein save system mache .. ein großes problem ist das ich viele arrays benutze mit gameobjects ..also die arrays haben viele prefabs drinnen wie räume oder gegner die gespawnt werden können .. gibt es eine möglichkeit irgednwie die arrays mit gameobjects abzuspeichern??? ...oder kennt jemand ein save system das mir die Arbeit abnimmt :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

hey

ich weiss jetzt nicht genau was dein problem ist, aber ich versuche es mal einzugrenzen. 

handelt es sich um ein statisches level oder wird dieses zur laufzeit zufällig generiert (inklusive gegner)? falls das erste zutrifft dann reicht es ja wenn gegner etc in listen vorhanden sind (wird ja dann in der szene gespeichert). das einzige was beachtet werden muss sind zb die zustände der gegner und spielerposition beim speichern und laden des spielstandes, wenn man mitten im level speichern kann.

falls das zweite zutrifft wirds etwas komplizierter. meines wissens nach kann man gameobjekte nicht direkt abspeichern bzw zu prefabs machen (zumindest nicht bei einem gebuildeten projekt). dann musst du nämlich alle wichtigen faktoren abspeichern. falls du einen zufallsgenerator hast, dann brauchst du alle werte die benutzt wurden um beim laden wieder das gleiche herzustellen. so zumindest mal die grobe theorie.

aber vllt kennt ja jemand ein tool aus dem asset store, das komplette go's abspeichert. möglich ist das bestimmt, nur braucht man wirklich alles abspeichern oder reichen schon ein paar wenige daten un das selbe zu erreichen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

ne, szenen kann man leider nicht abspeichern und einfach wieder laden^^

dann musst du dir diese random zahl irgendwo abspeichern. und falls du dann dein spiel laden willst, darfst du keine neuen random gegner erzeugen sondern musst dann halt die zuvor abgespeicherte zahl benutzen um den gleichen gegner zu spawnen. und das alles musst du dann auch wenn gewollt mit position, rotation, leben, usw machen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du müsstest dafür "sauber" die Prefabs von den Gameobjekten in der Szene trennen. Generell gilt dabei, Prefabs werden nicht gespeichert.
Was du speichern müsstest sind dann:
- die Referenzen zu den Prefabs der erzeugten GameObjekts in der Szene
- die Positionen, Rotationen der erstellten (instanziierten) GameObjekts in der Szene
- die nachträglichen Änderungen der Prefabs bezüglich der instanziierten GameObjekts in der Szene

Beim Laden der Szene werden dann folgende Sachen geladen:
- die Referenzen zu den Prefabs der zu erzeugenden GameObjekts in der Szene
- Positionen, Rotationen der zu erzeugenden GameObjekts in der Szene
- die nachträglichen Änderungen der Prefabs bezüglich der zu erzeugenden GameObjekts in der Szene

Mit diesen Daten werden dann alle GameObjekte der Szene aus den zugeordneten Prefabs instanziiert.
Also im Detail, die Objekte werden aus den zugeordneten Prefabs instanziiert und dann werden die nachträglichen Änderungen wie Position / Rotation und sonstige Änderungen zu den instanziierten GameObjekten hinzugefügt.

Zum Speichern von Arrays oder generellen Klassenobjekten in den PlayerPrefs bieten sich z.B. folgende Klassen an:
http://wiki.unity3d.com/index.php/ArrayPrefs2
http://wiki.unity3d.com/index.php/PlayerPrefsX2

Es kann sein, daß es auch schon ein Asset im Store dafür gibt, aber das wäre der Weg um es selbst zu machen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

boah ZeroCool du kennst dich echt in jedem Bereich aus ..bist du nen Profi oder wat ? ;) ja ich muss mal kucken wie ich das mache ... ich denke darüber nach ..ist echt ne harte nuss. ..ich "programmiere" ja ausschliesslich mit Playmaker ..daher wirds etwas komplizierter ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...