Megosztás a következőn keresztül:


Térbeli koordináta-rendszerek megőrzése

Általánosságban elmondható, hogy a World Locking Tools adatmegőrzési képességeinek előnyei fontosabbak, mint a megvalósítás részletei.

Ez a cikk tehát azokat a tapasztalatokat ismerteti, amelyeket a World Locking Tools biztosít. Ezt követően áttekintjük, hogyan kezelhető a World Locking Tools state persistence. Ezt követően rövid vázlatot készítünk arról, hogy milyen adatokat mentünk és töltünk be.

World Locking Tools több munkamenetben

Máshol meghatározottak szerint a fagyott állapot minden adat, amely a jelenlegi világzárzott stabil tér folytatásához szükséges.

A World Locking Tools megőrzésének elsődleges hasznossága az, hogy lehetővé teszi az előzetes munkamenetek munkájának előnyeit, egy terület vizsgálatát és a virtuális tér valós világhoz való igazítását, amelyet a későbbi munkamenetekben használhat.

Ennek az állapotnak a helyreállítása lehetővé teszi a későbbi munkamenetek számára, hogy lemondjanak a fárasztó vagy időigényes beállításról, és közvetlenül a fókuszba kerülhessenek.

A zárolási eszközök állapotának mentése

A betöltés előtt menteni kell a fagyasztott állapotot.

A fagyasztott állapot mentésének legegyszerűbb módja az automatikus mentés engedélyezése a World Locking Tools Managerben, vagy a Unity felügyelőjében a World Locking Tools kontextusában, vagy futtatókörnyezetben szkripttel.

A World Locking Tools Manager állapotának parancsfájlon keresztüli beállításához először le kell kapnia az állapotot, tetszőleges módon módosítania kell, majd vissza kell állítania az állapotot blokkként. Például az Automatikus mentés funkció váltása:

var settings = WorldLockingManger.GetInstance().Settings;
settings.AutoSave = !settings.AutoSave;
WorldLockingManager.GetInstance().Settings = settings;

Ha az Automatikus mentés funkció engedélyezve van egy munkamenet során, a rendszer nem kísérel meg további rendszeres mentéseket. Ha a letiltásról az engedélyezésre kerül, az időszakos mentések elkezdődnek vagy folytatódnak.

Az Automatikus mentés funkció az aktuális állapot aszinkron mentésével naprakészen tartja a mentett állapotot.

Ha az állapot mentésének időzítése nagyobb mértékben szabályozható, akkor előfordulhat, hogy az automatikus mentés hamis értékre van állítva, és a manuális mentés szkripttel is elvégezhető. Az aszinkron mentés egyszerűen aktiválható, mivel:

WorldLockingManager.GetInstance().Save();

Mivel a mentés aszinkron, a rendszer figyelmen kívül hagyja az előző mentés során megkísérlendő Save() egyéb meghívási kísérleteket.

Fagyasztott állapot betöltése

Ha mentett egy zárolt állapotot, célszerű lehet újra betölteni a World Locking Toolst ebbe az állapotba, akár egy későbbi munkamenetben, akár egy későbbi munkamenetben.

A fagyasztott állapot mentéséhez hasonlóan a betöltési állapotnak két elérési útja van.

Ha a World Locking Tools Manager automatikus betöltése jelző engedélyezve van, akkor a rendszer indításkor betölti a korábbi mentett állapotokat. Ha nincs mentett állapot a betöltéshez, nem jön létre hiba, és az indítás úgy folytatódik, mintha a jelölő nincs beállítva.

Az Automatikus betöltés jelző beállítása hamisról igazra (például szkripttel) futásidőben nem lesz hatással. Az automatikus betöltés vagy a kezdeti betöltéskor történik, vagy egyáltalán nem történik meg.

A betöltést azonban bármikor elindíthatja a szkriptből a World Locking Tools Manager Load függvényén keresztül:

WorldLockingManager.GetInstance().Load();

A Mentéshez hasonlóan a terhelés aszinkron módon történik. A rendszer figyelmen kívül hagyja a betöltést követő hívásokat, amíg egy még folyamatban van.

Mi van mentve?

A World Locking Tools leképezésének rekonstruálásához szükséges adatok – vagyis a virtuális világ valós világhoz való igazítása – négy csoportra bonthatók.

  • Térbeli horgonyok: A World Locking Tools 'Anchor Manager által belsőleg létrehozott és karbantartott térbeli horgonyok mögöttes hálózata biztosítja a szükséges kötést a valós világhoz. Ezek a horgonyok a platform mögöttes tárolási mechanizmusán keresztül maradnak meg.

  • Motor állapota: A motor állapota megmarad, így a motor folytathatja az aktuális leképezést. Az állapot visszaállítása eltávolítja azokat a meghatározhatatlanságokat, mint a fej kezdeti póza az előző munkamenet(ek)ben.

  • Térrögzítés: Ha az alkalmazás további szóközöket alkalmazott a modellezési koordináták a valós világhoz való igazításának kényszerítésére különálló pontokon, akkor a leképezés is megmarad.

  • Koordináta-tér: A világzárolási eszközök a helyi térbeli horgonyok belső gráfjának mentésével megőrzik a fizikai világhoz viszonyított koordináta-helyet.

Mit nem ment a rendszer?

Gépház nincsenek mentve, és a World Locking Tools nem menti vagy állítja vissza az egyes alkalmazásobjektumokat. A rendszer csak az állapotot menti. Az alkalmazás konfigurációs módosításai – például a WorldLockingManager API-val végrehajtott módosítások – minden alkalommal, amikor az alkalmazás elindul, a Unity Inspectorben beállított értékekre lesznek visszaállítva. Vagy ha nincsenek beállítva a Felügyelőben, akkor a kód alapértelmezett értékeire vannak beállítva.

Tegyük fel például, hogy az alkalmazás meg szeretné jeleníteni a felhasználót a világzárolási állapot automatikus mentésének lehetőségével, és azt szeretné, hogy a felhasználó preferenciája továbbra is megmaradjon a munkamenetekben, amíg meg nem változik. Ezután az alkalmazásnak a következőnek kell lennie:

  1. Az automatikus mentés beállításához (feltehetően más alkalmazásbeállítások esetén) mutassa be a felhasználót az UX-vel.
  2. Továbbítsa a felhasználó beállításait a WorldLockingManagernek.
  3. Jegyezze fel a fájlbeállításokat (feltehetően más alkalmazásbeállításokkal).
  4. Az alkalmazás indításakor töltse be a mentett beállításokat (ha vannak mentettek) és továbbítja a WorldLockingManagernek.

Tekintse meg a WorldLockingContextben az állapotbeállítás eszközök és szkriptek közötti keverésével kapcsolatos időzítési problémákat.

Lásd még