Interaktív elem [Kísérleti] – MRTK2
Egyszerűsített központosított belépési pont az MRTK bemeneti rendszeréhez. Állapotkezelési módszereket, eseménykezelést és az állapotbeállítási logikát tartalmazza az alapvető interakciós állapotokhoz.
Az Interaktív elem egy kísérleti funkció, amelyet a Unity 2019.3 és újabb verzió támogat, mivel a Unity 2019.3: A referencia szerializálása funkcióját használja.
Interaktív elemfelügyelő
A lejátszási módban az Interaktív elemfelügyelő vizuális visszajelzést küld, amely jelzi, hogy az aktuális állapot aktív-e. Ha egy állapot aktív, ciánkék színnel lesznek kiemelve. Ha az állapot nem aktív, a szín nem változik. Az ellenőr állapotai melletti számok az állapotértékek, ha az állapot aktív, akkor az érték 1, ha az állapot nem aktív, az érték 0.
Alapvető állapotok
Az interaktív elem alapvető állapotokat tartalmaz, és támogatja az egyéni állapotok hozzáadását. Az alapállapot olyan, amely már rendelkezik az állapotbeállítási logikával a-ben BaseInteractiveElement
. Az alábbi lista az aktuális bemeneti alapú magállapotokat tartalmazza:
Aktuális alapvető állapotok
Közeli és távoli interakció alapvető állapotai:
Közel interakció alapvető állapotai:
Távoli interakció alapállapotai:
Egyéb alapvető állapotok:
Alapvető állapot hozzáadása az Inspector használatával
Lépjen az Add Core State (Alapállapot hozzáadása ) elemre az interaktív elem felügyelőjében.
Válassza az Állapot kiválasztása gombot a hozzáadni kívánt alapállapot kiválasztásához. A menüben lévő állapotok interakciótípus szerint vannak rendezve.
Nyissa meg az Eseménykonfiguráció hajtogatást az állapothoz társított események és tulajdonságok megtekintéséhez.
Alapvető állapot hozzáadása szkripttel
AddNewState(stateName)
A metódussal adjon hozzá egy alapvető állapotot. Az elérhető alapállapotnevek listájához használja az enumerálást CoreInteractionState
.
// Add by name or add by CoreInteractionState enum to string
interactiveElement.AddNewState("SelectFar");
interactiveElement.AddNewState(CoreInteractionState.SelectFar.ToString());
Államok belső struktúrája
Az Interaktív elem állapotainak típusa InteractionState
. Az an InteractionState
a következő tulajdonságokat tartalmazza:
- Név: Az állapot neve.
- Érték: Az állapotérték. Ha az állapot be van kapcsolva, az állapot értéke 1. Ha az állapot ki van kapcsolva, az állapot értéke 0.
- Aktív: Azt jelzi, hogy az állapot jelenleg aktív-e. Az Aktív tulajdonság értéke igaz, ha az állapot be van kapcsolva, hamis, ha az állapot ki van kapcsolva.
- Interakció típusa: Az állapot interakciótípusa az az interakciótípus, amelynek az állapotot szánják.
None
: Nem támogatja a bemeneti interakciók semmilyen formáját.Near
: Közel interakció támogatása. A bemenet közel interakciónak minősül, ha egy csuklós kéz közvetlen kapcsolatban áll egy másik játékobjektummal, azaz a csuklós kéz pozíciója közel van a játékobjektum világűrben elfoglalt helyéhez.Far
: Távoli interakció támogatása. A bemenet távoli interakciónak minősül, ha nincs szükség közvetlen kapcsolatra a játékobjektummal. A vezérlő sugarán vagy tekinteten keresztüli bevitel például távoli interakciós bemenetnek számít.NearAndFar
: A közel- és távoli interakciók támogatását is magában foglalja.Other
: Mutatófüggetlen interakció támogatása.
- Eseménykonfiguráció: Az állapot eseménykonfigurációja a szerializált eseményprofil belépési pontja.
Ezen tulajdonságok mindegyike belsőleg van beállítva az State Manager
interaktív elemben. Az állapotok módosításához használja a következő segítő módszereket:
Állapotbeállítás segédmeterei
// Get the InteractionState
interactiveElement.GetState("StateName");
// Set a state value to 1/on
interactiveElement.SetStateOn("StateName");
// Set a state value to 0/off
interactiveElement.SetStateOff("StateName");
// Check if a state is present in the state list
interactiveElement.IsStatePresent("StateName");
// Check whether or not a state is active
interactiveElement.IsStateActive("StateName");
// Add a new state to the state list
interactiveElement.AddNewState("StateName");
// Remove a state from the state list
interactiveElement.RemoveState("StateName");
Az állapot eseménykonfigurációjának lekérése önmagára vonatkozik. Minden egyes alapvető állapot egy adott eseménykonfigurációs típussal rendelkezik, amely az egyes alapvető állapotokat leíró szakaszokban található.
Íme egy általános példa egy állapot eseménykonfigurációjának lekérésére:
// T varies depending on the core state - the specific T's are specified under each of the core state sections
T stateNameEvents = interactiveElement.GetStateEvents<T>("StateName");
Alapértelmezett állapot
Az Alapértelmezett állapot mindig jelen van egy interaktív elemen. Ez az állapot csak akkor lesz aktív, ha az összes többi állapot nem aktív. Ha bármely más állapot aktívvá válik, az Alapértelmezett állapot belsőleg ki lesz kapcsolva.
Az interaktív elemek inicializálása az állapotlistában található Alapértelmezett és Fókusz állapotokkal történik. Az Alapértelmezett állapotnak mindig szerepelnie kell az állapotlistában.
Alapértelmezett állapotesemények beolvasása
Az alapértelmezett állapot eseménykonfigurációs típusa: StateEvents
StateEvents defaultEvents = interactiveElement.GetStateEvents<StateEvents>("Default");
defaultEvents.OnStateOn.AddListener(() =>
{
Debug.Log($"{gameObject.name} Default State On");
});
defaultEvents.OnStateOff.AddListener(() =>
{
Debug.Log($"{gameObject.name} Default State Off");
});
Fókusz állapota
A Fókusz állapot egy közel- és távoli interakciós állapot, amely a rámutatással egyenértékű vegyes valóságnak tekinthető. A Fókusz állapot közeli és távoli interakciója közötti különbség az aktuális aktív mutatótípus. Ha a Fókusz állapot mutatótípusa a Poke-mutató, akkor az interakció közel interakciónak minősül. Ha az elsődleges mutató nem a Poke-mutató, akkor az interakció távoli interakciónak minősül. A Fókusz állapot alapértelmezés szerint jelen van az Interaktív elemben.
Fókuszállapot
Fókuszállapot-felügyelő
Fókuszállapot-események beolvasása
A fókuszállapot eseménykonfigurációs típusa: FocusEvents
FocusEvents focusEvents = interactiveElement.GetStateEvents<FocusEvents>("Focus");
focusEvents.OnFocusOn.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Focus On");
});
focusEvents.OnFocusOff.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Focus Off");
});
Fókusz közelről és fókusz távolról viselkedés
Fókusz közeli állapotban
A Fókusz közel állapota akkor van beállítva, ha fókuszeseményt emelnek ki, és az elsődleges mutató a Poke-mutató, amely a közel interakciót jelzi.
Focus Near State Behavior
Focus Near State Inspector
Fókusz lekéréseÚj állapotesemények
A FocusNear állapot eseménykonfigurációs típusa: FocusEvents
FocusEvents focusNearEvents = interactiveElement.GetStateEvents<FocusEvents>("FocusNear");
focusNearEvents.OnFocusOn.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Near Interaction Focus On");
});
focusNearEvents.OnFocusOff.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Near Interaction Focus Off");
});
Fókusz távoli állapota
A Fókusz távolsága állapot akkor van beállítva, ha az elsődleges mutató nem a Poke-mutató. Az alapértelmezett vezérlő sugármutatója és a GGV (Tekintet, Kézmozdulat, Hang) mutató például távoli interakciós mutatóknak minősül.
Focus Far State Behavior
Focus Far State Inspector
Fókusz távoli állapot eseményeinek lekérése
A FocusFar state eseménykonfigurációs típusa: FocusEvents
FocusEvents focusFarEvents = interactiveElement.GetStateEvents<FocusEvents>("FocusFar");
focusFarEvents.OnFocusOn.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Far Interaction Focus On");
});
focusFarEvents.OnFocusOff.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Far Interaction Focus Off");
});
Érintéses állapot
Az Érintés állapot egy közel interakciós állapot, amely akkor van beállítva, ha egy csuklós kéz közvetlenül megérinti az objektumot. A közvetlen érintés azt jelenti, hogy a csuklós kéz mutatóujja nagyon közel van az objektum világpozíciójához. Alapértelmezés szerint egy NearInteractionTouchableVolume
összetevő lesz csatolva az objektumhoz, ha az Érintés állapot hozzá van adva az állapotlistához. Az érintéses események észleléséhez szükség van egy NearInteractionTouchableVolume
vagy NearInteractionTouchable
összetevő jelenlétére. A különbség az és NearInteractionTouchable
az közöttNearInteractionTouchableVolume
, hogy NearInteractionTouchableVolume
észleli az érintést az objektum ütközője alapján, és NearInteractionTouchable
észleli az érintést egy sík meghatározott területén belül.
Érintésállapot
Touch State Inspector
Érintésállapot-események lekérése
A Touch State eseménykonfigurációs típusa: TouchEvents
TouchEvents touchEvents = interactiveElement.GetStateEvents<TouchEvents>("Touch");
touchEvents.OnTouchStarted.AddListener((touchData) =>
{
Debug.Log($"{gameObject.name} Touch Started");
});
touchEvents.OnTouchCompleted.AddListener((touchData) =>
{
Debug.Log($"{gameObject.name} Touch Completed");
});
touchEvents.OnTouchUpdated.AddListener((touchData) =>
{
Debug.Log($"{gameObject.name} Touch Updated");
});
Távoli állapot kiválasztása
A Select Far (Távolság kiválasztása) állapot a IMixedRealityPointerHandler
felületre kerül. Ez az állapot egy távoli interakciós állapot, amely észleli a távoli interakció kattintását (légkondentálás), és a távoli interakciós mutatók, például az alapértelmezett vezérlő sugármutatója vagy a GGV-mutató használatával tartja a kapcsolatot. A Távoli állapot kiválasztása lehetőség az eseménykonfiguráció összecsukási területén Global
található. Ha Global
igaz, akkor a IMixedRealityPointerHandler
globális beviteli kezelőként van regisztrálva. Ha egy kezelő globálisként van regisztrálva, nem kell objektumra összpontosítania a bemeneti rendszer eseményeinek aktiválásához. Ha például egy felhasználó tudni szeretné, hogy a fókuszban lévő objektumtól függetlenül bármikor végrehajtja-e a légi koppintás/kijelölés kézmozdulatot, állítsa true (igaz) értékre Global
.
Távoli állapot
Válassza a Far State Inspector (Távoli állapotfelügyelő kiválasztása) lehetőséget.
Távoli állapot eseményeinek kiválasztása
A SelectFar állapot eseménykonfigurációs típusa: SelectFarEvents
SelectFarEvents selectFarEvents = interactiveElement.GetStateEvents<SelectFarEvents>("SelectFar");
selectFarEvents.OnSelectUp.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Far Interaction Pointer Up");
});
selectFarEvents.OnSelectDown.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Far Interaction Pointer Down");
});
selectFarEvents.OnSelectHold.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Far Interaction Pointer Hold");
});
selectFarEvents.OnSelectClicked.AddListener((pointerEventData) =>
{
Debug.Log($"{gameObject.name} Far Interaction Pointer Clicked");
});
Kattintson az Állapot gombra
A Kattintott állapotot alapértelmezés szerint egy távoli interakció (Távoli állapot kiválasztása) váltja ki. Ez az állapot belsőleg be van kapcsolva, meghívja az OnClicked eseményt, majd azonnal ki van kapcsolva.
Megjegyzés
Az ellenőr állapottevékenységen alapuló vizuális visszajelzése nem jelenik meg a Kattintott állapothoz, mert azonnal be- és kikapcsol.
Kattintson az Állapot viselkedése
Kattintson a State Inspector (Állapotfelügyelő
Példa a közelben és a távolra kattintott állapotra
A kattintott állapot további belépési pontokon keresztül aktiválható a interactiveElement.TriggerClickedState()
metódussal. Ha például egy felhasználó egy közeli interakciós érintést szeretne egy objektumra való kattintás aktiválásához, akkor a TriggerClickedState()
metódust figyelőként adja hozzá érintéses állapotban.
A kattintott állapotesemények lekérése
A Kattintott állapot eseménykonfigurációs típusa: ClickedEvents
ClickedEvents clickedEvent = interactiveElement.GetStateEvents<ClickedEvents>("Clicked");
clickedEvent.OnClicked.AddListener(() =>
{
Debug.Log($"{gameObject.name} Clicked");
});
Be- és kikapcsolási állapot
A Be és a Ki váltó állapot egy pár, és mindkettőnek jelen kell lennie a váltó viselkedéshez. Alapértelmezés szerint a Váltógomb be- és kikapcsolása egy távoli interakciós kattintással aktiválódik (Távoli állapot kiválasztása). Alapértelmezés szerint a Kikapcsolás állapot aktív az indításkor, ami azt jelenti, hogy a kapcsolót ki értékre inicializálja a rendszer. Ha egy felhasználó azt szeretné, hogy a Váltógomb bekapcsolva állapot aktív legyen az indításkor, akkor a Be váltó állapotban állítsa true (igaz) értékre IsSelectedOnStart
.
Az Állapot viselkedésének ki- és bekapcsolása virtuális
Az Inspector ToggleOn és Toggle Off State Inspector
Példa a közeli és a távoli váltóállapotra
A Kattintott állapothoz hasonlóan a váltóállapot-beállítás több belépési ponttal is rendelkezhet a interactiveElement.SetToggleStates()
metódus használatával. Ha például egy felhasználó további belépési pontként szeretné beállítani az érintést a váltóállapotok beállításához, akkor a SetToggleStates()
metódust az Érintés állapot egyik eseményéhez adja hozzá.
Az állapotesemények be- és kikapcsolása
A ToggleOn állapot eseménykonfigurációs típusa: ToggleOnEvents
A ToggleOff állapot eseménykonfigurációs típusa: ToggleOffEvents
// Toggle On Events
ToggleOnEvents toggleOnEvent = interactiveElement.GetStateEvents<ToggleOnEvents>("ToggleOn");
toggleOnEvent.OnToggleOn.AddListener(() =>
{
Debug.Log($"{gameObject.name} Toggled On");
});
// Toggle Off Events
ToggleOffEvents toggleOffEvent = interactiveElement.GetStateEvents<ToggleOffEvents>("ToggleOff");
toggleOffEvent.OnToggleOff.AddListener(() =>
{
Debug.Log($"{gameObject.name} Toggled Off");
});
Beszéd kulcsszó állapota
A Speech Kulcsszó állapot figyeli az Mixed Reality Speech Profile-ben meghatározott kulcsszavakat. Minden új kulcsszót regisztrálni kell a speech parancsprofilban a futtatókörnyezet előtt (az alábbi lépések).
Speech Keyword State Behavior
Speech Keyword State Inspector
Megjegyzés
A Speech Kulcsszó állapot a szerkesztőben a fenti gif F5 billentyű lenyomásával aktiválódott. A beszédszerkesztő tesztelésének beállítását az alábbi lépések ismertetik.
Beszédparancs/kulcsszó regisztrálása
Válassza ki a MixedRealityToolkit játékobjektumot
Válassza az aktuális profil másolása és testreszabása lehetőséget
Lépjen a Bemenet szakaszra, és válassza a Klónozás lehetőséget a Bemeneti profil módosításának engedélyezéséhez
Görgessen le a Beszéd szakaszhoz a Bemeneti profilban, és klónozza a Beszédprofilt
Válassza az Add a New Speech Command (Új beszédfelismerés hozzáadása) parancsot
Adja meg az új kulcsszót. Nem kötelező: Módosítsa a KeyCode-ot F5 -ra (vagy egy másik KeyCode-ra), hogy lehetővé tegye a tesztelést a szerkesztőben.
Vissza az Interactive Element Speech Kulcsszó állapotfelügyelőhöz, és válassza a Kulcsszó hozzáadása lehetőséget
Adja meg az új kulcsszót, amely most lett regisztrálva a Beszédprofilban
A speech kulcsszó állapotának a szerkesztőben való teszteléséhez nyomja le a 6. lépésben (F5) meghatározott KeyCode billentyűt a beszéd kulcsszó által felismert esemény szimulálásához.
Beszéd kulcsszóállapot-eseményeinek lekérése
A SpeechKeyword állapot eseménykonfigurációs típusa: SpeechKeywordEvents
SpeechKeywordEvents speechKeywordEvents = interactiveElement.GetStateEvents<SpeechKeywordEvents>("SpeechKeyword");
speechKeywordEvents.OnAnySpeechKeywordRecognized.AddListener((speechEventData) =>
{
Debug.Log($"{speechEventData.Command.Keyword} recognized");
});
// Get the "Change" Keyword event specifically
KeywordEvent keywordEvent = speechKeywordEvents.Keywords.Find((keyword) => keyword.Keyword == "Change");
keywordEvent.OnKeywordRecognized.AddListener(() =>
{
Debug.Log("Change Keyword Recognized");
});
Egyéni állapotok
Egyéni állapot létrehozása az Inspector használatával
Az inspector használatával létrehozott egyéni állapot az alapértelmezett állapotesemény-konfigurációval lesz inicializálva. Az egyéni állapot alapértelmezett eseménykonfigurációja típus StateEvents
, és tartalmazza az OnStateOn és az OnStateOff eseményeket.
Lépjen az Egyéni állapot létrehozása elemre az interaktív elem felügyelőjében.
Adja meg az új állapot nevét. Ennek a névnek egyedinek kell lennie, és nem lehet ugyanaz, mint a meglévő magállapotok.
Válassza az Államnév beállítása lehetőséget az állapotlistához való hozzáadáshoz.
Ez az egyéni állapot az és eseményeket tartalmazó
OnStateOn
OnStateOff
alapértelmezettStateEvents
eseménykonfigurációval van inicializálva. Egyéni eseménykonfiguráció új állapothoz való létrehozásához lásd: Egyéni állapot létrehozása egyéni eseménykonfigurációval.
Egyéni állapot létrehozása szkripttel
interactiveElement.AddNewState("MyNewState");
// A new state by default is initialized with a the default StateEvents configuration which contains the
// OnStateOn and OnStateOff events
StateEvents myNewStateEvents = interactiveElement.GetStateEvents<StateEvents>("MyNewState");
myNewStateEvents.OnStateOn.AddListener(() =>
{
Debug.Log($"MyNewState is On");
});
Egyéni állapot létrehozása egyéni eseménykonfigurációval
A Billentyűzet nevű egyéni állapot példafájljai itt találhatók: MRTK\SDK\Experimental\InteractiveElement\Examples\Scripts\CustomStateExample
Az alábbi lépések végigvezetnek egy meglévő példán egy egyéni állapotesemény-konfiguráció és -fogadófájlok létrehozására.
Gondolj egy államnévre. Ennek a névnek egyedinek kell lennie, és nem lehet ugyanaz, mint a meglévő magállapotok. Ebben a példában az állapot neve Billentyűzet lesz.
Hozzon létre két .cs fájlt state name + "Receiver" és state name + "Events" néven. Ezeknek a fájloknak az elnevezését belsőleg kell figyelembe venni, és az állapot neve + Esemény/Fogadó konvenciót kell követnie.
A fájl tartalmáról további információt a KeyboardEvents.cs és a KeyboardReceiver.cs fájlban talál. Az új eseménykonfigurációs osztályoknak a-tól
BaseInteractionEventConfiguration
, az új eseményérzékelő osztályoknak pedig a-tólBaseEventReceiver
kell örökölniük. A Billentyűzet állapot beállítására vonatkozó példák aCustomStateSettingExample.cs
fájlban találhatók.Adja hozzá az állapotot az Interaktív elemhez az állapotnév használatával. Az állapot neve felismerhető, ha léteznek eseménykonfigurációs és eseményérzékelő-fájlok. Az egyéni eseménykonfigurációs fájl tulajdonságainak meg kell jelennie az ellenőrben.
Az eseménykonfigurációra és az eseményérzékelő fájlokra az alábbi elérési utakon talál további példákat:
- MRTK\SDK\Experimental\InteractiveElement\InteractiveElement\Events\EventConfigurations
- MRTK\SDK\Experimental\InteractiveElement\InteractiveElement\Events\EventReceivers
Példakép
Az Interactive Element + State Visualizer példajelenete itt található: MRTK\SDK\Experimental\InteractiveElement\Examples\InteractiveElementExampleScene.unity
Tömöríthető gomb
A példajelenet tartalmazza a és CompressableButtonToggle
nevű CompressableButton
előfabsokat, amelyek tükrözik a PressableButtonHoloLens2
gombok viselkedését, amelyek az Interaktív elem és az Állapotábrázoló használatával lettek létrehozva.
Az CompressableButton
összetevő jelenleg a és BaseInteractiveElement
az PressableButton
+ PressableButtonHoloLens2
alaposztály kombinációja.
Állapotábrázoló [Kísérleti]
A State Visualizer összetevő animációkat ad hozzá egy objektumhoz a csatolt interaktív elem összetevőben meghatározott állapotok alapján. Ez az összetevő animációs objektumokat hoz létre, elhelyezi őket a MixedRealityToolkit.Generated mappában, és lehetővé teszi az egyszerűsített animációs kulcskeret-beállítást animálható tulajdonságok céljáték-objektumhoz való hozzáadásával. Az állapotok közötti animációs áttűnés engedélyezéséhez létrejön egy Animator Controller objektum, és létrejön egy alapértelmezett állapotgép a társított paraméterekkel és az állapotáttűnésekkel. Az állapotgép megtekinthető a Unity Animator ablakában.
Állapotábrázoló és Unity animációs rendszer
A State Visualizer jelenleg a Unity animációs rendszert használja.
Amikor lenyomja az Új animációk létrehozása gombot az Állapotábrázolóban, a rendszer új animációklip-objektumokat hoz létre az Interaktív elem állapotnevei alapján, és a MixedRealityToolkit.Generated mappába kerül. Az egyes állapottárolók Animációklip tulajdonsága a társított animációs klipre van állítva.
Animator State Machine is létrejön, hogy kezelje az animációs klipek közötti zökkenőmentes átmeneteket. Alapértelmezés szerint az állapotgép a Bármely állapotot használja az interaktív elem bármely állapota közötti átmenetek engedélyezéséhez.
Az animátorban aktivált állapotábrázolók is létrejönnek az egyes állapotokhoz, az eseményindító paramétereit pedig az Állapotábrázoló használja az animáció aktiválásához.
A Runtime korlátozásai
Az Állapotábrázolót hozzá kell adni egy objektumhoz az Inspector használatával, és nem adhatók hozzá szkripttel. Az AnimatorStateMachine/AnimationController tulajdonságot módosító tulajdonságok egy szerkesztőnévtérben (UnityEditor.Animations
) találhatók, amely az alkalmazás létrehozásakor törlődik.
Az Állapotábrázoló használata
Kocka létrehozása
Interaktív elem csatolása
Állapotábrázoló csatolása
Válassza az Új animációk létrehozása elemet
A Fókusz állapottárolóban válassza a Cél hozzáadása lehetőséget
Az aktuális játékobjektum húzása a célmezőre
A Kocka animálható tulajdonságai hajtogatás megnyitása
Válassza az Animatable tulajdonság legördülő menüt, és válassza a Szín lehetőséget
Válassza a Szín animálható tulajdonság hozzáadása lehetőséget
Szín kiválasztása
Nyomja le a Play billentyűt, és figyelje meg az átmeneti színváltozást
Animálható tulajdonságok
Az Animatable Properties (Animatable Properties) elsődleges célja az animációs clip keyframe beállítás egyszerűsítése. Ha egy felhasználó ismeri a Unity animációs rendszert, és inkább közvetlenül beállítaná a kulcskereteket a létrehozott animációs klipeken, akkor egyszerűen nem adhat animálható tulajdonságokat egy célobjektumhoz, és nem nyithatja meg a klipet a Unity Animáció ablakában (Windows > Animáció animáció > ).
Ha animálható tulajdonságokat használ az animációhoz, a görbe típusa a EaseInOut értékre van állítva.
Aktuális animálható tulajdonságok:
Eltolás méretezése
Az Eltolás méretezése animálható tulajdonság az objektum aktuális skáláját veszi fel, és hozzáadja a definiált eltolást.
Pozíció eltolása
A Position Offset Animatable tulajdonság az objektum aktuális pozícióját veszi fel, és hozzáadja a definiált eltolást.
Szín
A Szín animálható tulajdonság az anyag fő színét jelöli, ha az anyagnak van fő színtulajdonsága. Ez a tulajdonság animálja a tulajdonságot material._Color
.
Árnyékoló színe
A Shader Color Animatable tulajdonság egy szín típusú árnyékoló tulajdonságra utal. Minden árnyékolótulajdonsághoz meg kell adni egy tulajdonságnevet. Az alábbi gif egy Fill_Color nevű árnyékolószín-tulajdonság animálását mutatja be, amely nem a fő anyagszín. Figyelje meg az anyagvizsgáló változó értékeit.
Shader Float
A Shader Float Animatable tulajdonság lebegőpontos típusú árnyékolótulajdonságra utal. Minden árnyékolótulajdonsághoz meg kell adni egy tulajdonságnevet. Az alábbi gif-ben figyelje meg a Fémes tulajdonság anyagfelügyelőjének változó értékeit.
Shader Vector
A Shader Vector Animatable tulajdonság a Vector4 típusú shader tulajdonságra hivatkozik. Minden árnyékolótulajdonsághoz meg kell adni egy tulajdonságnevet. Az alábbi gif-ben figyelje meg a Tiling (Main Tex_ST) tulajdonság anyagfelügyelőjének változó értékeit.
Animatable Shader tulajdonságnevek keresése
Navigáljon az Animáció > ablakhoz >
Győződjön meg arról, hogy az Állapotábrázolóval rendelkező objektum ki van jelölve a hierarchiában
Animációs klip kijelölése az Animáció ablakban
Válassza az Add Property (Tulajdonság hozzáadása) lehetőséget, majd nyissa meg a Mesh Renderer foldout (Mesh Renderer foldout) lehetőséget.
Ez a lista az animálható tulajdonságnevek nevét tartalmazza