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


A World Locking Tools környezet- és kezelőbeállításai

A World Locking Tools Context lehetővé teszi a World Locking Tools Manager paraméteres testreszabását a Unity Inspectorben.

Bár a WorldLockingContext összetevő egy felhasználói felületet biztosít a WorldLockingManager számára, fontos megérteni, hogy nem azonosak, és bizonyos helyzetekben fontos lehet megérteni a kapcsolatukat.

A kezelő egy önálló

A WorldLockingManager egy igény szerint létrehozott és az alkalmazás élettartama alatt is megmaradó egyetlentonn. Ha nem történik hívás a WorldLockingManager felé, az soha nem lesz példányosítva. A példányosítás után az élőben marad, amíg az alkalmazás le nem áll. Soha nem semmisítik meg és példányosítják újra.

A WorldLockingManager nem Unity objektum, hanem általános C# osztály. Frissítését egy proxy Unity-összetevő, a privát WorldLockingManager.UpdateProxy osztály egy példánya vezérli. Ez egyébként független a Unity létrehozási/frissítési/megsemmisítési ciklusaitól.

A környezet egy Unity-összetevő

A WorldLockingContext egy Unity-összetevő, amelyet a szokásos módon ad hozzá egy objektumhoz a jelenetben. A mezők ugyanúgy jelennek meg a Unity Inspector-ben, mint bármely más szokásos Unity-összetevő mezői.

Bár nem hiba, hogy több aktív WorldLockingContexts van egy jelenetben, valószínűleg nem kívánatos, mivel a viselkedés nem határozható meg, az objektumbetöltések ismeretlen sorrendjétől függően.

A környezet beállításai a WorldLockingContext betöltésekor lesznek alkalmazva. A környezet konkrétan a World Locking Tools Manager onEnable hívásában küldi el a beállításait, és bármikor aktív jelenet lesz. Az utóbbit a Unity.SceneManager.activeSceneChanged visszahívás részeként alkalmazza a rendszer, ha és csak akkor, ha az új aktív jelenet az a jelenet, amelyhez a környezet tartozik.

Minden beállítás alkalmazható szkriptből

A futtatókörnyezet bármely pontján az alkalmazás szkripttel alkalmazhat egyéni beállításokat a WorldLockingManagerre. Ha az erőforrások bármilyen szakadása és újraépítése szükséges a beállítások módosításának végrehajtásához, a rekonstrukció azonnal megtörténik a beállítások módosításakor.

Bár vannak olyan kényelmi tagok, akik a WorldLockingManager egyéni tulajdonságértékeit kérik le, például az automatikus mentést, a paraméterek beállítása mindig összesítve történik. Például az AutoMerge és az AutoRefreeze funkciók váltására szolgáló kód a következőképpen nézhet ki:

/// Get a copy of the current settings
var settings = WorldLockingManager.GetInstance().Settings;
/// Modify the copy
settings.AutoMerge = !settings.AutoMerge;
settings.AutoRefreeze = !settings.AutoRefreeze;
/// Update the current settings to the values in the copy.
WorldLockingManager.GetInstance().Settings = settings;

Hasonlóképpen a diagnosztikai beállításokhoz is.

Vegye figyelembe, hogy ha egyszerre több beállítást módosít, az csak egyetlen újraépítés költségét járja (ha van ilyen).

Gépház elsőbbsége

A WorldLockingManagerre jelenleg alkalmazott beállításokra vonatkozó szabályok nagyon egyszerűek:

  1. Ha nincs betöltődve környezetet tartalmazó jelenet, és nincs explicit beállítás a szkriptből, a WorldLockingManager alapértelmezett beállításai vannak.

  2. A beállítások mindaddig megőrzik az értékét, amíg a WorldLockingContext betölti egy jelenettel, vagy egy explicit módosítást, amelyet az alkalmazás meghív a szkriptben.

A World Locking Tools Manager beállításainak környezetekből és szkriptekből származó beállításainak összekeverésekor körültekintően kell eljárni. Mivel a környezet mindig a betöltésre alkalmazza a beállításait, egy szkript, amely manuálisan alkalmazza a beállítást a terhelés során, különösen az OnEnable visszahívásából, valószínűleg versenyfeltételeket és határozatlan viselkedést fog futtatni.

Elérhető beállítások

A World Locking Tools viselkedésének vezérléséhez rendelkezésre álló beállítások csoportokra vannak bontva az alábbiak szerint.

Alapszintű világzárolási környezet beállítása

Automatizálási beállítások

Az automatizálási beállítások szabályozzák a World Locking Tools Manager futtatókörnyezeti viselkedését. A módosításhoz elérhető mezőket és azok következményeit a Manager Gépház osztályban dokumentáljuk. Ezek az automatizált időszakos műveletek felettes általi engedélyezésére vagy letiltására összpontosítanak. A letiltott automatikus műveletek manuálisan is elvégezhetők.

A környezet automatizálási szakasza

Összekapcsolás beállításai

A csatolási beállítások segítségével explicit módon definiálható az a jelenet GameObjects , amelynek átalakításai a World Locking Tools korrekcióinak alkalmazására lesznek használva.

A környezet kapcsolati szakasza

A "Meglévő használata" mező lehetővé teszi, hogy a csatolt objektumok egyszer be legyenek állítva a jelenetben a kamerafólióval (a "Meglévő használata" hamis értékkel), és a további tartalomjeleneteket (a "Meglévő használata" igaz értékkel) nem bírálja felül.

Ezzel szemben a "Meglévő használata" beállítás hamisra állítása lehetővé teszi, hogy a kamera hierarchiájának megfelelő helyeihez több jelenet is kapcsolódjon egy másik kameratartóval.

A kamerahierarchia szkriptből való létrehozásakor és kezelésekor a "Meglévő használata" mezőt minden kontextusban igaz értékre kell állítani, és a csatolások kifejezetten frissülnek a kamerakezelő szkriptekből.

Ha a szükséges átalakítások nincsenek megadva, vagy a bal oldali null érték, vagy az összes környezet rendelkezik a "Meglévő használata" értékkel, a rendszer figyelmeztetést ad ki, és megpróbál jó döntéseket kikövetkeztetni. Javasoljuk, de nem kötelező, hogy explicit módon állítsa be a megfelelő átalakításokat ahelyett, hogy a rendszer találgatása lenne.

Itt két további lehetőség is van, amelyek a kameraátalakítás korrekciójának alkalmazását szabályozzák.

A "Kiigazítás alkalmazása" jelölőnégyzet első jelölőnégyzete alapértelmezés szerint engedélyezve van. Ez azt jelzi a rendszernek, hogy alkalmazza a kiszámított kamerakorrekciót minden egyes keretre a "Korrekciós keret" GameObjectbeállításra. A letiltás egy nagyon fejlett funkció, és csak az összes többi probléma megoldása után kell próbálkozni, és a World Locking Tools alapos ismerete elérhetővé vált. Röviden, azt mondja a rendszernek, hogy a kamera korrekciója nem alkalmazható a kamerára, hanem más módon lesz alkalmazva. Ez általában egy AlignSubtree összetevőn keresztül történik, de nem szükséges.

A második "Nincs dobás és dobás" jelölőnégyzet azt jelzi a rendszernek, hogy az átalakítás Playspace során kiszámított összes dobás és dobás nullára legyen állítva. (Lásd a WLT koordináta-terekről szóló vitafórumot). Ez nem befolyásolja a rendszer által SpacePin alkalmazott forgást, de csak a fagyott világmotor által kiszámított világzároló kamerakorrekciós átalakításra van hatással.

Horgonykezelési beállítások

A Horgonykezelés a horgonykövetési rendszer összes explicit kiválasztását megadja. Ez a kijelölés jelenleg csak indításkor történik, és a kijelölés után nem módosítható.

Az egyéb beállítások lehetővé teszik az alapul szolgáló belső horgonydiagram sűrűségének szabályozását. Ezek bármikor módosíthatók, bár hatásuk eltarthat egy ideig a belső gráfon keresztüli propagálásukig.

Ha nagyon nagy területeket fed le, érdemes lehet csökkenteni a belső horgonydiagram sűrűségét a teljesítmény pontosságának feláldozása érdekében. A MinNewAnchorDistance növelése csak ezt teszi. Az új belső horgony hozzáadása előtt szükséges minimális távolság növelésével nő a horgonyok közötti térköz, és így csökken a horgonyok sűrűsége.

Meg kell jegyezni, hogy az éllétrehozás tesztjének teljesítéséhez a MaxAnchorEdgeLength értéknek nagyobbnak kell lennie, mint a MinNewAnchorDistance. A gyakorlatban a MaxAnchorEdgeLength 10-20%-kal nagyobb, mint a MinNewAnchorDistance jól működik.

A MaxLocalAnchors paraméter a sűrűség módosítása helyett közvetlenül korlátozza a belső horgonyok számát. Jelenleg, ha a horgonyok száma meghaladja a korlátot, a kamerától legtávosabb horgonyokat újrahasznosítják, hogy a szám csökkenjen. Más algoritmusok azonban érdekesek és vizsgálva vannak, ezért az alkalmazások nem függenek ettől a konkrét implementációtól.

A környezet horgonykezelési szakasza

További részletek a Horgony Gépház szerkezetben találhatók.

Diagnosztikai beállítások

A diagnosztikai beállítások szabályozzák a viselkedés és hibakeresés elemzéséhez szükséges diagnosztikák gyűjtését. Ezeket általában az "Alapértelmezettek használata" beállítással kell hagyni, amely többek között letiltja a diagnosztikák gyűjteményét. A diagnosztikai gyűjtemény nagy teljesítménybeli húzással jár, ezért csak akkor érdemes elkerülni, ha szükséges.

A környezet diagnosztikai szakasza

A fejlesztés során, amikor váratlan és nemkívánatos viselkedést tapasztal, a diagnosztikai adatok a Use Defaults letiltásával és a diagnosztika engedélyezésével gyűjtöttek Gépház. Az engedélyezve lehetővé válik olyan adatok gyűjtése, amelyek segíthetnek a viselkedés megértésében és javításában.

A módosításra rendelkezésre álló mezőket a Diagnostics Gépház osztály ismerteti.

Alapértelmezett beállítások

Mind a kezelői, mind a diagnosztikai beállítások tartalmazzák az "Alapértelmezettek használata" jelölőnégyzetet a beállításokban. Az "Alapértelmezettek használata" tulajdonság a szkriptből is elérhető.

Ha az "Alapértelmezett értékek használata" tulajdonság igaz, a rendszer az aktuális alapértelmezett beállításokat használja. Ha egy tulajdonság alapértelmezett értékei megváltoznak egy új kiadásban, a "Use Defaults" tulajdonság arra utasítja a rendszert, hogy használja az új tulajdonságértéket.

Ha az "Alapértelmezett értékek használata" tulajdonságot bármikor igaz értékre állítja, az összes értéket visszaállítja az aktuális alapértelmezett értékre. Ha az értékeket egy adott időpontban az alapértelmezett értékek pillanatképében szeretné zárolni, engedélyezze az "Alapértelmezettek használata" tulajdonságot, hogy az összes mezőt visszaállítsa az aktuális alapértelmezett értékre, majd törölje a jelölőnégyzet jelölését, hogy ne változzon frissítéssel.

Javasoljuk, hogy hagyja a "Use Defaults" (Alapértelmezett értékek használata) beállítást igaz értékre, kivéve a kísérletezéshez és a hibakereséshez szükséges fejlesztés során.

Lásd még