Sdílet prostřednictvím


Nastavení kontextu a správce nástrojů World Locking Tools

Kontext nástrojů World Locking Tools umožňuje parametrické přizpůsobení Správce nástrojů World Locking Tools Manager v Unity Inspectoru.

I když komponenta WorldLockingContext představuje uživatelské rozhraní pro WorldLockingManager, je důležité pochopit, že nejsou totéž, a v některých situacích může být důležité pochopit jejich vztah.

Manažer je jednoúčelový

WorldLockingManager je jednoton vytvořený na vyžádání a trvá po celou dobu životnosti aplikace. Pokud se do nástroje WorldLockingManager nevyvolají žádná volání, nebude vytvořena instance. Po vytvoření instance zůstane aktivní, dokud se aplikace nevypne. Nikdy se nezničí a znovu vytvoří instanci.

WorldLockingManager není objekt Unity, jedná se o obecnou třídu C#. Jeho aktualizace je řízena komponentou Proxy Unity, instancí privátní třídy WorldLockingManager.UpdateProxy. Jinak je nezávislá na cyklech vytvoření,aktualizace/zničení Unity.

Kontext je komponenta Unity.

WorldLockingContext je komponenta Unity, která je přidána k objektu ve scéně obvyklým způsobem. Pole se zobrazují v Unity Inspectoru stejně jako všechna ostatní běžná pole komponenty Unity.

I když není chybou mít více aktivních WorldLockingContexts v jedné scéně, pravděpodobně není žádoucí, protože chování by nebylo definováno, závislé na neznámém pořadí načtení objektu.

Nastavení kontextu se použije při načtení objektu WorldLockingContext. Konkrétně kontext dosadí nastavení do Správce nástrojů World Locking Tools ve svém volání OnEnable a kdykoli se jeho scéna stane aktivní scénou. Druhá se použije jako součást zpětného volání Unity.SceneManager.activeSceneChanged, pokud a pouze v případě, že nová aktivní scéna je scéna, do které kontext patří.

Všechna nastavení se můžou použít ze skriptu.

V jakémkoli okamžiku v modulu runtime může aplikace prostřednictvím skriptu použít vlastní nastavení pro WorldLockingManager. Pokud se k provedení změny nastavení vyžaduje odstranění a opětovné sestavení prostředků, provede se obnovení okamžitě při změně nastavení.

I když existují některé členy pohodlí pro získání jednotlivých hodnot vlastností z WorldLockingManager, například automatické ukládání, nastavení parametrů se vždy děje v agregaci. Například kód pro přepnutí funkcí AutoMerge a AutoRefreeze může vypadat takto:

/// 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;

Podobně pro nastavení diagnostiky.

Všimněte si, že změna více nastavení najednou tímto způsobem způsobuje pouze náklady na jedno opětovné sestavení (pokud je potřeba).

priorita Nastavení

Pravidla pro nastavení aktuálně použitá pro WorldLockingManager jsou velmi jednoduchá:

  1. Pokud nebyla načtena žádná scéna obsahující kontext a nebyla explicitně nastavena žádná nastavení ze skriptu, worldlockingmanager má výchozí nastavení.

  2. Nastavení si zachová hodnotu, dokud se nepřepíše načtením WorldLockingContext se scénou nebo explicitní změnou vyvolanou z aplikace ve skriptu.

Při kombinování nastavení Nástroje World Locking Tools Manager z kontextů a nastavení ze skriptů by se měla používat upozornění. Vzhledem k tomu, že kontext vždy použije nastavení při načítání, skript ručně použije nastavení během načítání, zejména z jeho zpětného volání OnEnable, pravděpodobně narazí na podmínky časování a neurčité chování.

Dostupná nastavení

Dostupná nastavení pro řízení chování nástroje World Locking Tools jsou rozdělena do skupin následujícím způsobem.

Základní nastavení kontextu uzamčení světa

Nastavení automatizace

Nastavení automatizace řídí chování modulu runtime správce nástrojů World Locking Tools Manager. Pole, která jsou k dispozici pro úpravy a jejich důsledky, jsou zdokumentovaná v rámci třídy Manager Nastavení. Zaměřuje se na povolení nebo zakázání automatizovaných pravidelných akcí manažerem. Jakoukoli zakázanou automatizovanou akci je možné místo toho provést ručně.

Část automatizace kontextu

Nastavení propojení

Nastavení propojení slouží k explicitnímu definování scény GameObjects , jejíž transformace se použijí k použití oprav nástroje World Locking Tools.

Část propojení kontextu

Pole Použít existující umožňuje nastavit propojené objekty jednou ve scéně s rigem fotoaparátu (s false použít existující) a nepřepsat načtením následných scén obsahu (s true použít existující).

Naopak nastavení možnosti Použít existující na hodnotu false umožňuje, aby se několik scén s jinou rigovou kamerou svázat s příslušnými místy v hierarchii kamery.

Při vytváření a správě hierarchie fotoaparátu ze skriptu by mělo být pole Použít existující nastaveno na true ve všech kontextech a vazby se aktualizují explicitně z fotoaparátu, které spravují skripty.

Pokud požadované transformace nejsou zadány, ponechejte hodnotu null nebo všechny kontexty mají možnost Použít existující, systém vydá upozornění a pokusí se odvodit dobré volby. Doporučuje se, ale není nutné explicitně nastavit vhodné transformace, nikoli odhad systému.

Existují dvě další možnosti, které řídí způsob použití opravy transformace kamery.

První zaškrtávací políčko pro možnost Použít úpravu je ve výchozím nastavení povolené. To systému říká, aby použil opravu vypočítané kamery každý snímek na "Upravit rámec" GameObject. Zakázání této funkce je velmi pokročilá a mělo by se vyzkoušet až po vyřešení všech ostatních problémů a bylo dosaženo hlubokého porozumění nástrojům World Locking Tools. Stručně řečeno, říká systému, že oprava kamery není použita na kameru, ale bude použita jinými prostředky. Obvykle se jedná o AlignSubtree součást, ale nemusí to být.

Druhé zaškrtávací políčko "No Pitch And Roll" říká systému, aby vynuloval jakoukoli výšku a vypočítal v transformaci z Playspace uzamčeného prostoru. (Podívejte se na tuto diskuzi o souřadnicových prostorech WLT). To nemá žádný vliv na otáčení použité SpacePin systémem, ale má vliv pouze na svět zamykání fotoaparát opravy transformace vypočítané Frozen World Engine.

Nastavení správy ukotvení

Nastavení správy ukotvení veškeré explicitní výběr systému sledování ukotvení. Tento výběr je nyní proveden pouze při spuštění a po výběru nelze změnit.

Další nastavení zde umožňují kontrolu nad hustotou podkladového interního ukotveného grafu. Tyto změny se můžou kdykoli změnit, i když jejich účinek může nějakou dobu trvat, než se rozšíří prostřednictvím interního grafu.

Při pokrytí velmi velkých oblastí může být vhodné snížit hustotu interního ukotvení grafu, aby obětoval přesnost výkonu. Zvýšení MinNewAnchorDistance dělá jen to. Zvýšením minimální vzdálenosti vyžadované před přidáním nové vnitřní kotvy se mezery mezi kotvami zvětší, takže hustota ukotvení se sníží.

Je třeba poznamenat, že aby bylo možné předat test vytvoření hraničních zařízení, musí být MaxAnchorEdgeLength větší než MinNewAnchorDistance. V praxi maxAnchorEdgeLength 10-20% větší pak MinNewAnchorDistance funguje dobře.

Parametr MaxLocalAnchors místo úpravy hustoty přímo omezuje počet vnitřních ukotvení. V současné době platí, že když je počet ukotvení nad limitem, ukotvení od fotoaparátu se recyklují, aby se číslo zpomalovaly. Jiné algoritmy jsou ale zajímavé a prošetřovány, takže by aplikace neměla záviset na této konkrétní implementaci.

Část správy ukotvení kontextu

Další podrobnosti dokumentují v rámci struktury Anchor Nastavení.

Nastavení diagnostiky

Nastavení diagnostiky řídí shromažďování diagnostiky pro analýzu chování a ladění. Obvykle by měly zůstat v sadě Použít výchozí hodnoty, což mimo jiné zakáže shromažďování diagnostiky. Kolekce diagnostiky je skvělým přetažením výkonu, takže pokud není potřeba, měli byste se vyhnout.

Oddíl diagnostiky kontextu

Při vývoji dochází při neočekávaném a nežádoucím chování ke shromažďování diagnostických dat zakázáním možnosti Použít výchozí hodnoty a povolením diagnostiky Nastavení. Povoleno umožní shromažďování dat, která mohou být instrumentální při pochopení a opravě tohoto chování.

Pole, která jsou k dispozici pro úpravy, jsou popsána v diagnostice Nastavení třídě.

Výchozí nastavení

Nastavení správce i diagnostiky obsahují v nastavení zaškrtávací políčko Použít výchozí hodnoty. Vlastnost Použít výchozí hodnoty je také k dispozici ve skriptu.

Pokud je vlastnost Použít výchozí hodnoty true, použije se aktuální výchozí nastavení. Pokud se v nové verzi změní výchozí hodnoty vlastnosti, vlastnost Use Defaults (Použít výchozí hodnoty) dává systému pokyn, aby použil novou hodnotu vlastnosti.

Nastavení vlastnosti Použít výchozí hodnoty na true kdykoli obnoví všechny hodnoty na jejich aktuální výchozí hodnoty. Pokud chcete hodnoty zamknout na snímku výchozích hodnot v daném okamžiku, povolte vlastnost Použít výchozí hodnoty, aby se všechna pole resetovala na aktuální výchozí hodnoty a potom zrušte zaškrtnutí políčka, aby se zabránilo jejich změně aktualizací.

Doporučuje se ponechat hodnotu "Použít výchozí hodnoty" nastavenou na hodnotu true, s výjimkou doby vývoje pro experimentování a ladění.

Viz také