Interactief element [experimenteel] — MRTK2
Een vereenvoudigd gecentraliseerd toegangspunt voor het MRTK-invoersysteem. Bevat statusbeheermethoden, gebeurtenisbeheer en de statusinstellingslogica voor Kerninteractiestatussen.
Interactive Element is een experimentele functie die wordt ondersteund in Unity 2019.3 en hoger omdat het gebruikmaakt van een nieuwe functie voor Unity 2019.3: Serialize Reference.
Interactive Element Inspector
Tijdens de afspeelmodus geeft de inspector voor interactieve elementen visuele feedback die aangeeft of de huidige status al dan niet actief is. Als een status actief is, wordt deze gemarkeerd met een cyaankleur. Als de status niet actief is, wordt de kleur niet gewijzigd. De getallen naast de statussen in de inspector zijn de statuswaarden. Als de status actief is, is de waarde 1 en als de status niet actief is, is de waarde 0.
Kernstatussen
Interactief element bevat kernstatussen en ondersteunt het toevoegen van aangepaste statussen. Een kernstatus is een status waarvoor de statusinstellingslogica al is gedefinieerd in BaseInteractiveElement
. Hier volgt een lijst met de huidige invoergestuurde kernstatussen:
Huidige kernstatussen
Kernstatussen van interactie in de buurt en ver weg:
Kernstatussen van interactie in de buurt:
Kernstatussen van ver-interactie:
Andere kernstatussen:
Een kernstatus toevoegen via Inspector
Navigeer naar Kernstatus toevoegen in de inspector voor Interactief element.
Selecteer de knop Status selecteren om de kernstatus te kiezen die u wilt toevoegen. De statussen in het menu worden gesorteerd op interactietype.
Open de uitvouwbare gebeurtenisconfiguratie om de gebeurtenissen en eigenschappen weer te geven die zijn gekoppeld aan de status.
Een kernstatus toevoegen via script
Gebruik de AddNewState(stateName)
methode om een kernstatus toe te voegen. Gebruik de CoreInteractionState
opsomming voor een lijst met de namen van de beschikbare kernstatussen.
// Add by name or add by CoreInteractionState enum to string
interactiveElement.AddNewState("SelectFar");
interactiveElement.AddNewState(CoreInteractionState.SelectFar.ToString());
Interne structuur van staten
De statussen in het interactieve element zijn van het type InteractionState
. Een InteractionState
bevat de volgende eigenschappen:
- Naam: de naam van de status.
- Waarde: de statuswaarde. Als de status is ingeschakeld, is de statuswaarde 1. Als de status is uitgeschakeld, is de statuswaarde 0.
- Actief: hiermee wordt aangegeven of de status momenteel actief is. De waarde voor de eigenschap Actief is waar wanneer de status is ingeschakeld, onwaar als de status is uitgeschakeld.
-
Interactietype: Het interactietype van een status is het type interactie waarvoor een status is bedoeld.
-
None
: biedt geen ondersteuning voor enige vorm van invoerinteractie. -
Near
: Ondersteuning voor bijna-interactie. Invoer wordt beschouwd als bijna-interactie wanneer een gearticuleerde hand direct contact heeft met een ander spelobject, dat wil zeggen de positie van de gearticuleerde hand dicht bij de positie van het spelobject in de wereldruimte. -
Far
: ondersteuning voor verre interactie. Invoer wordt beschouwd als verre interactie wanneer direct contact met het gameobject niet vereist is. Invoer via controller ray of gaze wordt bijvoorbeeld beschouwd als invoer met verre interactie. -
NearAndFar
: Omvat zowel ondersteuning voor interactie dichtbij als ver weg. -
Other
: Ondersteuning voor onafhankelijke interactie met aanwijzers.
-
- Gebeurtenisconfiguratie: De gebeurtenisconfiguratie voor een status is het ingangspunt van het geserialiseerde gebeurtenisprofiel.
Al deze eigenschappen worden intern ingesteld in de State Manager
in Interactive Element. Gebruik de volgende helpermethoden voor het wijzigen van statussen:
Helpermethoden voor statusinstellingen
// 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");
Het verkrijgen van de gebeurtenisconfiguratie van een status is specifiek voor de status zelf. Elke kernstatus heeft een specifiek gebeurtenisconfiguratietype dat hieronder wordt beschreven in de secties waarin elke kernstatus wordt beschreven.
Hier volgt een gegeneraliseerd voorbeeld van het ophalen van de gebeurtenisconfiguratie van een status:
// 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");
Standaardstatus
De status Standaard is altijd aanwezig op een interactief element. Deze status is alleen actief wanneer niet alle andere statussen actief zijn. Als een andere status actief wordt, wordt de standaardstatus intern uitgeschakeld.
Een interactief element wordt geïnitialiseerd met de statussen Standaard en Focus die aanwezig zijn in de statuslijst. De standaardstatus moet altijd aanwezig zijn in de statuslijst.
Standaardstatus-gebeurtenissen ophalen
Gebeurtenisconfiguratietype voor de standaardstatus: 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");
});
Focusstatus
De status Focus is een bijna-en-verre interactiestatus die kan worden beschouwd als de mixed reality-equivalent van hover. De onderscheidende factor tussen bijna en ver weg interactie voor de focusstatus is het huidige actieve type aanwijzer. Als het type aanwijzer voor de status Focus de Aanwijzer is, wordt de interactie als bijna-interactie beschouwd. Als de primaire aanwijzer niet de Poke-aanwijzer is, wordt de interactie beschouwd als verre interactie. De status Focus is standaard aanwezig in het interactieve element.
Focusstatusgedrag
Controlestatus Focusstatus
Focusstatusevenementen ophalen
Gebeurtenisconfiguratietype voor de focusstatus: 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");
});
Focus Near vs Focus Far Behavior
Focus in de buurt van status
De status Focus near wordt ingesteld wanneer een focus-gebeurtenis wordt geactiveerd en de primaire aanwijzer de Aanwijzer is, een indicatie van bijna-interactie.
Focus near State Behavior
Focus near State Inspector
FocusNieuwe statusevenementen ophalen
Gebeurtenisconfiguratietype voor de FocusNear-status: 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");
});
Status ver van focus
De status Focus far wordt ingesteld wanneer de primaire aanwijzer niet de Poke-aanwijzer is. De standaardstraalpointer voor de controller en de GGV-aanwijzer (Gaze, Gesture, Voice) worden bijvoorbeeld beschouwd als aanwijzers voor verre interactie.
Focus Far State Behavior
Focus Far State Inspector
Focus ver weg gebeurtenissen krijgen
Gebeurtenisconfiguratietype voor de FocusFar-status: 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");
});
Aanraakstatus
De aanraakstatus is een bijna-interactiestatus die wordt ingesteld wanneer een gearticuleerde hand het object rechtstreeks aanraakt. Een directe aanraking betekent dat de wijsvinger van de gelede hand zich heel dicht bij de wereldpositie van het object bevindt. Standaard wordt een NearInteractionTouchableVolume
onderdeel aan het object gekoppeld als de aanraakstatus wordt toegevoegd aan de statuslijst. De aanwezigheid van een NearInteractionTouchableVolume
of-onderdeel NearInteractionTouchable
is vereist voor het detecteren van touch-gebeurtenissen. Het verschil tussen NearInteractionTouchableVolume
en NearInteractionTouchable
is dat NearInteractionTouchableVolume
een aanraking wordt gedetecteerd op basis van de collider van het object en NearInteractionTouchable
dat aanraking binnen een gedefinieerd gebied van een vlak wordt gedetecteerd.
Aanraakstatusgedrag
Touch State Inspector
Aanraakstatus-gebeurtenissen ophalen
Gebeurtenisconfiguratietype voor de aanraakstatus: 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");
});
Verre status selecteren
De status Select Far is de IMixedRealityPointerHandler
weergegeven status. Deze status is een verre interactiestatus die verre interactieklik detecteert (air-tap) en het gebruik van ver-interactie-aanwijzers zoals de standaard controller ray pointer of de GGV-aanwijzer. De status Verre selecteren heeft een optie onder de uitvouwbare gebeurtenisconfiguratie met de naam Global
. Als Global
waar is, wordt de IMixedRealityPointerHandler
geregistreerd als een globale invoerhandler. Focus op een object is niet vereist om invoersysteem gebeurtenissen te activeren als een handler is geregistreerd als globaal. Als een gebruiker bijvoorbeeld wil weten wanneer de beweging air-tap/select wordt uitgevoerd, ongeacht het object in de focus, stelt u Global
in op true.
Gedrag van verre status selecteren
Select Far State Inspector
Gebeurtenissen van verre status selecteren
Gebeurtenisconfiguratietype voor de SelectFar-status: 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");
});
Op status geklikt
De status Clicked wordt standaard geactiveerd door een klik op ver-interactie (Status Verre selecteren). Deze status wordt intern ingeschakeld, roept de gebeurtenis OnClicked aan en wordt vervolgens onmiddellijk uitgeschakeld.
Notitie
De visuele feedback in de inspector op basis van statusactiviteit is niet aanwezig voor de status Aangeklikt omdat deze is ingeschakeld en vervolgens onmiddellijk wordt uitgeschakeld.
Clicked State Behavior)
Klik op Statuscontrole
Voorbeeld van status in de buurt en ver weg
De aangeklikte status kan worden geactiveerd via extra toegangspunten met behulp van de interactiveElement.TriggerClickedState()
-methode. Als een gebruiker bijvoorbeeld wil dat een bijna-interactie-aanraking ook een klik op een object activeert, voegt deze de TriggerClickedState()
methode toe als een listener met de aanraakstatus.
Statusgebeurtenissen krijgen waar op wordt geklikt
Gebeurtenisconfiguratietype voor de aangeklikte status: ClickedEvents
ClickedEvents clickedEvent = interactiveElement.GetStateEvents<ClickedEvents>("Clicked");
clickedEvent.OnClicked.AddListener(() =>
{
Debug.Log($"{gameObject.name} Clicked");
});
Status aan en uitschakelen
De status Wisselknop aan en Wissel-uit zijn een paar en beide moeten aanwezig zijn voor wisselgedrag. Standaard worden de status Aan en Uitschakelen geactiveerd via een klik op ver-interactie (Status Ver selecteren). Standaard is de status Wisselknop uit actief bij het starten, wat betekent dat de wisselknop wordt geïnitialiseerd op uit. Als een gebruiker de status Wisselknop aan actief wil maken bij het starten, stelt u in de status IsSelectedOnStart
Wisselknop aan in op true.
Statusgedrag in- en uitschakelen Met
Het onderdeel Statuscontrole in- en uitschakelen
Voorbeeld van wisselstatussen in de buurt en ver
Net als bij de status Aangeklikt kan de instelling voor de wisselstatus meerdere toegangspunten hebben met behulp van de interactiveElement.SetToggleStates()
-methode. Als een gebruiker bijvoorbeeld aanraakinvoer als extra toegangspunt wil om de wisselstatussen in te stellen, voegt deze de SetToggleStates()
methode toe aan een van de gebeurtenissen met de status Touch.
Statusevenementen in- en uitschakelen
Gebeurtenisconfiguratietype voor de status ToggleOn: ToggleOnEvents
Gebeurtenisconfiguratietype voor de status ToggleOff: 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");
});
Status van spraakwoord
De status Spraaktrefwoord luistert naar de trefwoorden die zijn gedefinieerd in het Mixed Reality Spraakprofiel. Nieuw trefwoord MOET vóór runtime worden geregistreerd in het spraakopdrachtprofiel (stappen hieronder).
Speech Keyword State Behavior
Speech Keyword State Inspector
Notitie
De status van het spraakwoord is geactiveerd in de editor door op de toets F5 in de bovenstaande GIF te drukken. De onderstaande stappen worden beschreven in het instellen van het testen van spraak in de editor.
Een spraakopdracht/-trefwoord registreren
Selecteer het gameobject MixedRealityToolkit
Selecteer Kopiëren en Het huidige profiel aanpassen
Navigeer naar de sectie Invoer en selecteer Klonen om het invoerprofiel te wijzigen
Schuif omlaag naar de sectie Spraak in het invoerprofiel en kloon het spraakprofiel
Selecteer Een nieuwe spraakopdracht toevoegen
Voer het nieuwe trefwoord in. Optioneel: wijzig de KeyCode in F5 (of een andere KeyCode) om testen in de editor toe te staan.
Terug naar de statuscontrole Interactive Element Speech Keyword en selecteer Trefwoord toevoegen
Voer het nieuwe trefwoord in dat zojuist is geregistreerd in het spraakprofiel
Als u de status van het trefwoord spraak in de editor wilt testen, drukt u op de KeyCode die is gedefinieerd in stap 6 (F5) om de gebeurtenis herkende spraak trefwoord te simuleren.
Statusevenementen voor spraakwoorden ophalen
Gebeurtenisconfiguratietype voor de SpeechKeyword-status: 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");
});
Aangepaste statussen
Een aangepaste status maken via Inspector
De aangepaste status die via inspector is gemaakt, wordt geïnitialiseerd met de standaardconfiguratie voor statusgebeurtenissen. De standaard gebeurtenisconfiguratie voor een aangepaste status is van het type StateEvents
en bevat de gebeurtenissen OnStateOn en OnStateOff.
Navigeer naar Aangepaste status maken in de inspector voor Interactief element.
Voer de naam van de nieuwe status in. Deze naam moet uniek zijn en mag niet hetzelfde zijn als de bestaande kernstatussen.
Selecteer Statusnaam instellen om toe te voegen aan de statuslijst.
Deze aangepaste status wordt geïnitialiseerd met de standaardgebeurtenisconfiguratie
StateEvents
die deOnStateOn
gebeurtenissen enOnStateOff
bevat. Als u een aangepaste gebeurtenisconfiguratie wilt maken voor een nieuwe status, raadpleegt u: Een aangepaste status maken met een aangepaste gebeurtenisconfiguratie.
Een aangepaste status maken via script
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");
});
Een aangepaste status maken met een aangepaste gebeurtenisconfiguratie
Voorbeeldbestanden voor een aangepaste status met de naam Toetsenbord bevinden zich hier: MRTK\SDK\Experimental\InteractiveElement\Examples\Scripts\CustomStateExample
De volgende stappen doorlopen een bestaand voorbeeld van het maken van een aangepaste status gebeurtenisconfiguratie en ontvangerbestanden.
Denk aan een staatsnaam. Deze naam moet uniek zijn en mag niet hetzelfde zijn als de bestaande kernstatussen. In dit voorbeeld wordt de naam van de status Toetsenbord.
Maak twee .cs-bestanden met de naam statusnaam + 'Ontvanger' en statusnaam + 'Gebeurtenissen'. De naamgeving van deze bestanden wordt intern in overweging genomen en moet de statusnaam + gebeurtenis/ontvanger-conventie volgen.
Zie de bestanden KeyboardEvents.cs en KeyboardReceiver.cs voor meer informatie over de bestandsinhoud. Nieuwe gebeurtenisconfiguratieklassen moeten overnemen van
BaseInteractionEventConfiguration
en nieuwe gebeurtenisontvangerklassen moeten overnemen vanBaseEventReceiver
. Voorbeelden van statusinstellingen voor de toetsenbordstatus bevinden zich in hetCustomStateSettingExample.cs
bestand.Voeg de status toe aan het interactieve element met behulp van de statusnaam. De statusnaam wordt herkend als er bestanden voor gebeurtenisconfiguratie en gebeurtenisontvanger bestaan. De eigenschappen in het configuratiebestand voor aangepaste gebeurtenissen moeten worden weergegeven in de inspector.
Zie de bestanden op deze paden voor meer voorbeelden van gebeurtenisconfiguratie en gebeurtenisontvangerbestanden:
- MRTK\SDK\Experimental\InteractiveElement\InteractiveElement\Events\EventConfigurations
- MRTK\SDK\Experimental\InteractiveElement\InteractiveElement\Events\EventReceivers
Voorbeeldscène
De voorbeeldscène voor Interactive Element + State Visualizer bevindt zich hier: MRTK\SDK\Experimental\InteractiveElement\Examples\InteractiveElementExampleScene.unity
Samendrukbare knop
De voorbeeldscène bevat prefabs met de naam CompressableButton
en CompressableButtonToggle
, deze prefabs weerspiegelen het gedrag van de PressableButtonHoloLens2
knoppen, die zijn samengesteld met behulp van interactief element en de status visualiseren.
Het CompressableButton
onderdeel is momenteel een combinatie van PressableButton
+ PressableButtonHoloLens2
met BaseInteractiveElement
als basisklasse.
State Visualizer [Experimenteel]
Het onderdeel State Visualizer voegt animaties toe aan een object op basis van de statussen die zijn gedefinieerd in een gekoppeld onderdeel interactief element. Dit onderdeel maakt animatie-assets, plaatst deze in de map MixedRealityToolkit.Generated en maakt vereenvoudigde instellingen voor animatiesleutelframes mogelijk door Animatable-eigenschappen toe te voegen aan een doelgameobject. Als u animatie-overgangen tussen statussen wilt inschakelen, wordt er een Activa van De Entertainer-controller gemaakt en wordt een standaardstatusmachine gegenereerd met bijbehorende parameters en eventuele statusovergangen. De statusmachine kan worden weergegeven in het venster Van Unity-editor.
State Visualizer en Unity Animation System
State Visualizer maakt momenteel gebruik van het Unity Animation System.
Wanneer u op de knop Nieuwe animatieclips genereren in State Visualizer drukt, worden nieuwe animatieclipassets gegenereerd op basis van de statusnamen in Interactive Element en worden deze in de map MixedRealityToolkit.Generated geplaatst. De eigenschap Animatieclip in elke statuscontainer is ingesteld op de bijbehorende animatieclip.
Er wordt ook een Animator State Machine gegenereerd om vloeiende overgangen tussen animatieclips te beheren. De statusmachine maakt standaard gebruik van alle statussen om overgangen tussen elke status in het interactieve element toe te staan.
Statusvisualiseringen die in de planner worden geactiveerd , worden ook gegenereerd voor elke status. De triggerparameters worden gebruikt in State Visualizer om een animatie te activeren.
Runtime-beperkingen
State Visualizer moet via inspector aan een object worden toegevoegd en kan niet via script worden toegevoegd. De eigenschappen die de AnimatorStateMachine/AnimationController wijzigen, bevinden zich in een editornaamruimte (UnityEditor.Animations
) die worden verwijderd wanneer de app wordt gebouwd.
State Visualizer gebruiken
Een kubus maken
Interactief element koppelen
Status visualiseren koppelen
Selecteer Nieuwe animatieclips genereren
Selecteer in de container Focusstatus de optie Doel toevoegen
Het huidige gameobject naar het doelveld slepen
De uitvouwbare eigenschappen van kubus openen
Selecteer het vervolgkeuzemenu van de eigenschap Animatable en selecteer Kleur
Selecteer De eigenschap Color Animatable toevoegen
Een kleur kiezen
Druk op Afspelen en bekijk de overgangskleurwijziging
Eigenschappen van animatie
Het primaire doel van de eigenschappen van Animatable is het vereenvoudigen van de keyframe-instelling voor animatieclips. Als een gebruiker bekend is met het Unity Animation System en de voorkeur geeft aan het rechtstreeks instellen van hoofdframes voor de gegenereerde animatieclips, kan deze eenvoudigweg geen Animatie-eigenschappen toevoegen aan een doelobject en de clip openen in het animatievenster van Unity (Windows > Animation > Animation).
Als u de animatable-eigenschappen voor animatie gebruikt, wordt het curvetype ingesteld op EaseInOut.
Huidige animatable-eigenschappen:
- Verschuiving van schaal
- Verschuiving van positie
- Kleur
- Arceringskleur
- Arceringsvijver
- Arceringsvector
Verschuiving van schaal
De eigenschap Scale Offset Animatable neemt de huidige schaal van het object en voegt de gedefinieerde offset toe.
Verschuiving van positie
De eigenschap Position Offset Animatable neemt de huidige positie van het object en voegt de gedefinieerde offset toe.
Kleur
De eigenschap Color Animatable vertegenwoordigt de hoofdkleur van een materiaal als het materiaal een hoofdkleureigenschap heeft. Deze eigenschap animeert de material._Color
eigenschap.
Arceringskleur
De eigenschap Shader Color Animatable verwijst naar een arceringseigenschap van het type kleur. Een eigenschapsnaam is vereist voor alle shader-eigenschappen. In de onderstaande GIF ziet u animaties voor een arceringskleureigenschap met de naam Fill_Color die niet de hoofdkleur van het materiaal is. Bekijk de veranderende waarden in de materiaalcontrole.
Arceringsvijver
De eigenschap Shader Float Animatable verwijst naar een arceringseigenschap van het type float. Een eigenschapsnaam is vereist voor alle shader-eigenschappen. Bekijk in de onderstaande GIF de veranderende waarden in de materiaalcontrole voor de eigenschap Metallic.
Arceringsvector
De eigenschap Shader Vector Animatable verwijst naar een arceringseigenschap van het type Vector4. Een eigenschapsnaam is vereist voor alle shader-eigenschappen. Bekijk in de onderstaande GIF de veranderende waarden in de materiaalcontrole voor de eigenschap Tegelen (Main Tex_ST).
De eigenschapsnamen van animatable shader zoeken
Navigeer naar Vensteranimatieanimatie >>
Zorg ervoor dat het object met state visualizer is geselecteerd in de hiërarchie
Een animatieclip selecteren in het venster Animatie
Selecteer Eigenschap toevoegen, open de uitvouwbare mesh-renderer
Deze lijst bevat de namen van alle namen van de eigenschap Animatable