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


Mellékletpontok

A World Locking Tools elsősorban egy stabil, világzárolásos koordinátarendszert biztosít: a világ zárolt területét. Ez a tér a fizikai világhoz képest a lehető legrögzülve marad. A világ zárolt terében lévő objektumok olyan képességeket élveznek, amelyek ilyen stabil referenciakeretet igényelnek, például a más virtuális objektumokhoz való relatív elhelyezés fenntartása, a természetes fizika törvényeinek szimulációja, a kinetika és más animációs technikák.

Valójában az alkalmazás igényeitől függően a világ zárolt területe elegendő lehet néhány vagy az összes jelenet tartalmához.

Bár a világ zárolt területe továbbra is optimálisan igazodik a fizikai térhez, vannak olyan helyzetek, amelyeket később le kell írni, amelyekben nem lehetséges, hogy a világ zárolt területének több pontja is rögzített maradjon a közös koordináta-térben, és a fizikai világ referenciapontjaihoz képest rögzített marad.

Egy triviális, de megvilágító példához tegyük fel, hogy az érzékelő egy horgonyt a pozícióhoz (3,0,0) és egy másikat a pozícióhoz (-3,0,0) képez le. Később, az érzékelő finomításának feldolgozásakor megállapították, hogy a két koordinátának (3,0,0) és (-2,0,0) kellett volna lennie. Egyértelműen nincs olyan forgatás és eltolás, amely alkalmazható a kamerára, amely a két horgony közötti hatméteres távolságot öt méteres eltolássá alakítja át.

A Unity térbeli horgonyrendszerét használva a két horgony csak csendben lép az újonnan beolvasott pozícióikba.

A World Locking Tools azonban garantálja, hogy a világ zárolt területén a nem mozgó objektumok "többnyire" soha nem mozognak. És valójában minden indítvány a tulajdonos alkalmazáson múlik.

Egy másik gyakori "rendellenes" állapot a nyomon követés elvesztése. Ha a nyomon követés elveszik egy környezetben (például helyiségben), és egy másik környezetben tér vissza, akkor először nincs olyan információ, amely összekapcsolja a két szóközt. Az egyik tér koordinátái értelmetlenek a másik tér koordinátáihoz képest. A csatlakozási pont paradigma lehetővé teszi az alkalmazás számára, hogy elegánsan kezelje a kezdeti fázist, amikor a régi tér térbeli információi ismeretlenek (például elrejtik az objektumokat a régi térben), valamint helyreállítható, amikor a két tér közötti térbeli kapcsolat ismertté válik.

További információk találhatók ezekről a különleges feltételekről és a WLT által a kezelésükhöz végrehajtott újrafelszerelési műveletekről . A vita középpontjában a WLT és az alkalmazás közötti szerződés áll, amely az ilyen feltételek zökkenőmentes megoldására irányul.

A mellékletpontok a World Locking Tools és az alkalmazás közötti szerződés kodifikálása. Az alkalmazások a World Locking Tools API-kkal hoznak létre és elhelyeznek mellékletpontokat. Ha a mellékletpont pozíciójának korrekcióját egy újraszerelési művelet határozza meg, az alkalmazás értesítést kap a világ zárolt területének új pozíciójának visszahívásával, amely a rögzítési pontot a fizikai térben a régi helyén tartja.

Egyes forgatókönyvek, amelyekben a World Locking Tools mellékletpontjai lehetnek a megoldás:

  • Sokkal fontosabb, hogy a fizikai világ funkcióihoz képest rögzített maradjon, mint más virtuális objektumokhoz képest.
  • Az objektumok a tervezéskor a Unity helyett futásidőben kerülnek a világra, és fontos lehet a relatív pozíciók egyeztetése a nyomkövetési zavarokkal elválasztva (lásd a töredékek ismertetését).
  • Fontos, hogy az objektum láthatósága a fizikai tér elhelyezkedésének érvényességén alapuljon.

Mellékletpontok használata

A mellékletpontok használata meglehetősen egyszerű.

Ügyfélfeladatok

Minden szükséges mellékletpont esetében az ügyfélnek a következőnek kell lennie:

  1. Mellékletpontok kérése a rendszertől. Lásd: CreateAttachmentPoint
  2. Dobja el a már nem szükséges mellékletpontokat. Lásd: ReleaseAttachmentPoint
  3. A mellékletpont kezdeti pozíciójának és mozgásának alkalmazása. Lásd: CreateAttachmentPoint, MoveAttachmentPoint és TeleportAttachmentPoint
  4. Az újraszerelési műveleti események kezelése. Lásd alább.

A világ zárolási eszközeinek feladatai

A World Locking Tools minden érintett mellékletpontról értesíti az alkalmazást, ha az alábbiak valamelyike következik be:

  1. A mellékletpont fizikai világkövetési változásainak érvényessége.
  2. A világzárolt térben lévő koordinátái egy újrafelszerelt művelet miatt változnak, ami lehet egy töredék egyesítés vagy egy újrafagyasztás.

Ezeket az értesítéseket a rendszer meghatalmazottakon keresztül küldi el, amelyeket az alkalmazás átad a WorldLockingManagernek a mellékletpont létrehozásakor.

Ezeknek az értesítéseknek a legjobb kezelése az alkalmazásra marad, mivel mindegyiknek megvannak a maga szempontjai. A belsőleg használt és az egyéni implementációk kiindulópontjaként vagy kiindulási pontként használható mintakezelők is rendelkezésre állnak.

Minta implementációk

Ha egy olyan mellékletpontot szeretne rögzíteni a fizikai világban, amelynek el kell rejtenie a tartalmát, ha a nyomon követés érvénytelen, az AdjusterFixed implementálja az AdjustStateDelegate-et a HandleAdjustState tagjával, az AdjustLocationDelegate-et pedig annak HandleAdjustLocation tagjával. Az objektumok áthelyezéséhez hasonló összetevő az AdjusterMovingben található.

Érdemes megjegyezni, hogy a meghatalmazottak vagy mindkettő megadása nem kötelező, és valójában az állapot- és helyváltozásokra adott reakciók az események helyett lekérdezések alapján implementálhatók. Ha azonban az alkalmazás adottságai miatt nem lehetséges a használatuk, a meghatalmazottakat használó eseményalapú rendszer sokkal hatékonyabb implementációt eredményez.

Javasoljuk, hogy kezdje az AdjusterFixed összetevővel (vagy nagyon hasonló AdjusterMovinggel), és módosítsa a HandleAdjustLocation és a HandleAdjustState kezelőket az alkalmazások igényeinek megfelelően.

Lásd még