Uppdatera från tidigare versioner – MRTK2
- Uppgradera till en ny version av MRTK
- 2.3.0 till 2.4.0
- 2.2.0 till 2.3.0
- 2.1.0 till 2.2.0
- 2.0.0 till 2.1.0
- RC2 till 2.0.0
Hitta den aktuella versionen
Följ de här anvisningarna för att ta reda på vilken version av MRTK du använder för närvarande:
- Öppna ditt MRTK-projekt i Unity
- Gå till mappen "MixedRealityToolkit" i projektfönstret
- Öppna filen med namnet "Version"
Om filen och mappen ovan inte finns har du en nyare version av MRTK. I så fall kan du prova följande:
- Navigera till mappen "Mixed Reality Toolkit Foundation"
- Klicka på "package.json" för att se en förhandsgranskning i Unity eller öppna den med en textredigerare
- Leta efter raden med ordet "version:"
Uppgradera till en ny version av MRTK
Vi rekommenderar starkt att du kör migreringsverktyget när du har fått MRTK-uppdateringen för automatisk korrigering och uppgradering från inaktuella komponenter och justera till icke-bakåtkompatibla ändringar. Migreringsverktyget är en del av verktygspaketet .
Anvisningarna nedan beskriver uppgraderingsvägen 2.4.0 till 2.5.0. Om projektet finns på 2.3.0 eller tidigare läser du vidare till ändringarna mellan versionerna för att förstå uppgraderingssökvägen eller läser den tidigare versionens instruktioner för att utföra en uppgradering version för version.
Mixed Reality funktionsverktyg
Det enklaste sättet att uppgradera MRTK till en nyare version av MRTK är att använda Mixed Reality Feature Tool för att ladda ned de senaste paketen och läsa in dem direkt till ditt Unity-projekt.
Om projektet tidigare använde Unity-tillgångsfiler (.unitypackage) kan du läsa de här anvisningarna.
Unity-tillgångsfiler (.unitypackage)
En annan uppgraderingsväg är att manuellt ladda ned MRTK Unity-paket och tillämpa dem på ditt projekt. Se stegen nedan,
- Spara en kopia av det aktuella projektet om du skulle nå några problem när som helst i uppgraderingsstegen.
- Stäng Unity
- I mappen Tillgångar tar du bort följande MRTK-mappar tillsammans med deras .meta-filer (projektet kanske inte har alla mappar i listan)
- MRTK/Core
- MRTK/exempel
- MRTK/tillägg
- MRTK/Providers
- MRTK/SDK
- MRTK/Tjänster
- MRTK/StandardAssets
Viktigt
Om ändringar har gjorts i MRTK-skuggningarna skapar du en lokal säkerhetskopia innan du tar bort mappen MRTK/StandardAssets
- MRTK/Verktyg
Viktigt
Ta INTE bort mappen MixedRealityToolkit.Generated eller dess .meta-fil.
- Ta bort biblioteksmappen
Viktigt
Vissa Unity-verktyg, till exempel Unity Collab, sparar konfigurationsinformation i mappen Bibliotek. Om du använder ett verktyg som gör detta kopierar du först verktygets datamapp från Biblioteket innan du tar bort den och återställer den sedan när biblioteket har återskapats.
- Öppna projektet igen i Unity
- Importera de nya Unity-paketen
- Foundation – Importera det här paketet först
- Verktyg
- (Valfritt) Tillägg
Anteckning
Om ytterligare tillägg har installerats kan de behöva importeras på nytt.
- (Valfritt) Exempel
- Stäng Unity och ta bort mappen Bibliotek (läs anteckningen nedan först!). Det här steget är nödvändigt för att tvinga Unity att uppdatera sin tillgångsdatabas och stämma av befintliga anpassade profiler.
- Starta Unity och för varje scen i projektet
- Ta bort MixedRealityToolkit och MixedRealityPlayspace, om det finns, från hierarkin. Huvudkameran tas bort, men den återskapas i nästa steg. Om huvudkamerans egenskaper har ändrats manuellt måste dessa återanvändas manuellt när den nya kameran har skapats.
- Välj MixedRealityToolkit –> Lägg till i scenen och konfigurera
- Välj MixedRealityToolkit –> Verktyg – Uppdatering –>> Mappningsprofiler för kontrollanter (behöver bara göras en gång) – Detta uppdaterar alla anpassade profiler för mappning av kontrollanter med uppdaterade axlar och data, samtidigt som dina anpassade tilldelade indataåtgärder lämnas intakta
- Kör migreringsverktyget och kör verktyget i det fullständiga projektet för att säkerställa att all kod uppdateras till den senaste.
Migreringsfönstret innehåller ett antal olika migreringshanterare, som var och en måste köras på egen hand. Det här steget omfattar:
- Välj den första migreringshanteraren i listrutan Val av migreringshanterare .
- Klicka på knappen "Fullständigt projekt".
- Klicka på knappen "Lägg till fullständigt projekt för migrering" (detta genomsöker hela projektet efter objekt som ska migreras).
- Klicka på knappen "Migrera" som ska aktiveras om några migrerade objekt hittades.
- Upprepa de föregående tre stegen för var och en av migreringshanterarna i listrutan. (Se det här problemet som beskriver arbete som kan göras för att förenkla migreringsprocessen i en framtida version)
Växla från Unity-tillgångsfiler till Mixed Reality funktionsverktyg
Att byta från Unity-tillgångsfiler till Mixed Reality feature tool-paket medför ett antal fördelar:
- Enklare uppdatering
- Snabbare kompileringstider
- Färre projekt i Visual Studio-lösningen
Att ändra till att använda Mixed Reality-funktionsverktyget kräver en engångsuppsättning med manuella steg.
- Spara en kopia av det aktuella projektet.
- Stäng Unity
- I mappen Tillgångar tar du bort följande MRTK-mappar tillsammans med deras .meta-filer (projektet kanske inte har alla mappar i listan)
- MRTK/Core
- MRTK/exempel
- MRTK/tillägg
- MRTK/Providers
- MRTK/SDK
- MRTK/Tjänster
- MRTK/StandardAssets
Viktigt
Om ändringar har gjorts i MRTK-skuggningarna skapar du en lokal säkerhetskopia innan du tar bort mappen MRTK/StandardAssets
- MRTK/Verktyg
Viktigt
Ta INTE bort mappen MixedRealityToolkit.Generated eller dess .meta-fil.
- Ta bort biblioteksmappen
Viktigt
Vissa Unity-verktyg, till exempel Unity Collab, sparar konfigurationsinformation i mappen Bibliotek. Om du använder ett verktyg som gör detta kopierar du först verktygets datamapp från Biblioteket innan du tar bort den och återställer den sedan när biblioteket har återskapats.
- Öppna projektet igen i Unity
När föregående steg har utförts kör du funktionsverktyget Mixed Reality och importerar önskad version av Mixed Reality Toolkit.
Uppdaterar 2.3.0 till 2.4.0
Mapp byter namn påAPI-ändringar
Mappbyten i 2.4.0
Mapparna MixedRealityToolkit har bytt namn och flyttats till en gemensam hierarki i version 2.4. Om ett program använder hårdkodade sökvägar till MRTK-resurser måste de uppdateras enligt följande tabell.
Föregående mapp | Ny mapp |
---|---|
MixedRealityToolkit | MRTK/Core |
MixedRealityToolkit.Examples | MRTK/exempel |
MixedRealityToolkit.Extensions | MRTK/Tillägg |
MixedRealityToolkit.Providers | MRTK/Providers |
MixedRealityToolkit.SDK | MRTK/SDK |
MixedRealityToolkit.Services | MRTK/Tjänster |
MixedRealityToolkit.Tests | MRTK/Tester |
MixedRealityToolkit.Tools | MRTK/Tools |
Viktigt
MixedRealityToolkit.Generated
Innehåller kundgenererade filer och förblir oförändrade.
Ögonöga installation i 2.4.0
Den här versionen av MRTK ändrar de steg som krävs för ögonögakonfiguration. Kryssrutan IsEyeTrackingEnabled finns i blickinställningarna för indatapekarprofilen. Om du markerar den här rutan aktiveras ögonbaserad blick, snarare än den standardhuvudbaserade blicken.
Mer information om dessa ändringar och fullständiga instruktioner för konfiguration av ögonspårning finns i artikeln ögonspårning .
Beteende för ögonögapekare i 2.4.0
Standardbeteendet för ögonögonpekaren har ändrats så att det matchar standardbeteendet för pekaren för huvudögon. En ögonögapekare ignoreras automatiskt när en hand har identifierats. Ögonögapekaren blir synlig igen efter att ha sagt "Välj".
Detaljer om blick och hand installationer finns i ögon och händer artikel.
API-ändringar i 2.4.0
Anpassade kontrollantklasser
Anpassade kontrollantklasser var tidigare tvungna att definiera SetupDefaultInteractions(Handedness)
. Den här metoden har gjorts föråldrad i 2.4, eftersom parametern handedness var redundant med kontrollantklassens egenhändighet. Den nya metoden har inga parametrar. Dessutom definierade många kontrollantklasser detta på samma sätt (AssignControllerMappings(DefaultInteractions);
), så det fullständiga anropet har omstrukturerats till BaseController
och gjort en valfri åsidosättning i stället för obligatoriskt.
Egenskaper för ögonöga
Egenskapen UseEyeTracking
från GazeProvider
implementeringen av IMixedRealityEyeGazeProvider
har bytt namn till IsEyeTrackingEnabled
.
Om du gjorde det tidigare...
if (CoreServices.InputSystem.GazeProvider is GazeProvider gazeProvider)
{
gazeProvider.UseEyeTracking = true;
}
Gör det här nu...
if (CoreServices.InputSystem.GazeProvider is GazeProvider gazeProvider)
{
gazeProvider.IsEyeTrackingEnabled = true;
}
Egenskaper för WindowsApiChecker
Följande WindowsApiChecker-egenskaper har markerats som föråldrade. Använd IsMethodAvailable
, IsPropertyAvailable
eller IsTypeAvailable
.
- UniversalApiContractV8_IsAvailable
- UniversalApiContractV7_IsAvailable
- UniversalApiContractV6_IsAvailable
- UniversalApiContractV5_IsAvailable
- UniversalApiContractV4_IsAvailable
- UniversalApiContractV3_IsAvailable
Det finns inga planer på att lägga till egenskaper i WindowsApiChecker för framtida API-kontraktsversioner.
GltfMeshPrimitiveAttributes skrivskyddat
De primitiva attributen för gltf-nät som brukade vara inställbara är nu skrivskyddade. Deras värden anges en gång när deserialiseras.
Migrering av anpassad knappikon
Tidigare krävdes anpassade knappikoner för att tilldela ett nytt material till knappens quad-renderare. Detta är inte längre nödvändigt och vi rekommenderar att du flyttar anpassade ikonstrukturer till en IconSet. Befintliga anpassade material och ikoner bevaras. De är dock mindre optimala tills de har uppgraderats. Om du vill uppgradera tillgångarna på alla knappar i projektet till det nya rekommenderade formatet använder du ButtonConfigHelperMigrationHandler. (Mixed Reality Toolkit –> Verktyg –> Migreringsfönster –> Val av migreringshanterare –> Microsoft.MixedReality.Toolkit.Utilities.ButtonConfigHelperMigrationHandler)
Om det inte finns någon ikon i standardikonen som angavs under migreringen skapas en anpassad ikonuppsättning i MixedRealityToolkit.Generated/CustomIconSets. En dialogruta visar att detta har skett.
Uppdaterar 2.2.0 till 2.3.0
API-ändringar i 2.3.0
ControllerPoseSynchronizer
Fältet private ControllerPoseSynchronizer.handedness har markerats som föråldrat. Detta bör ha minimal påverkan på program eftersom fältet inte visas utanför dess klass.
Den offentliga ControllerPoseSynchronizer.Handedness-egenskapens setter har tagits bort (#7012).
MSBuild för Unity
Den här versionen av MRTK använder en nyare version av MSBuild för Unity än tidigare versioner. Om den äldre versionen visas i Unity Package Manger-manifestet under projektinläsningen visas konfigurationsdialogrutan med alternativet Aktivera MSBuild för Unity markerat. Om du tillämpar utförs en uppgradering.
Skriptverktyg
Klassen ScriptingUtilities har markerats som föråldrad och har ersatts av ScriptUtilities i sammansättningen Microsoft.MixedReality.Toolkit.Editor.Utilities. Den nya klassen förfinar tidigare beteende och lägger till stöd för att ta bort skriptdefinitioner.
Befintlig kod fortsätter att fungera i version 2.3.0, men vi rekommenderar att du uppdaterar till den nya klassen.
ShellHandRayPointer
LineRendererSelected- och lineRendererNoTarget-medlemmarna i klassen ShellHandRayPointer har ersatts av lineMaterialSelected respektive lineMaterialNoTarget (#6863).
Ersätt lineRendererSelected med lineMaterialSelected och/eller lineRendererNoTarget med lineMaterialNoTarget för att lösa kompileringsfel.
Spatial observer StartupBehavior
Rumsliga observatörer som bygger på BaseSpatialObserver
klassen respekterar nu värdet för StartupBehavior när de återaktiveras (#6919).
Inga ändringar krävs för att dra nytta av den här korrigeringen.
UX-kontrollprefabs har uppdaterats för att använda PressableButton
Följande prefabs använder nu komponenten PressableButton i stället för TouchHandler för nära interaktion (7070)
- AnimationButton
- Button (Knapp)
- ButtonHoloLens1
- ButtonHoloLens1Toggle
- CheckBox
- RadialSet
- Växlaknapp
- VäxlaKopplare
- UnityUIButton
- UnityUICheckboxButton
- UnityUIRadialButton
- UnityUIToggleButton
Programkoden kan kräva uppdatering på grund av den här ändringen.
WindowsMixedRealityUtilities-namnområde
Namnområdet för WindowsMixedRealityUtilities har ändrats från Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input till Microsoft.MixedReality.Toolkit.WindowsMixedReality (#6863).
Uppdatera #using instruktioner för att lösa kompileringsfel.
Uppdaterar 2.1.0 till 2.2.0
API-ändringar i 2.2.0
IMixedRealityBoundarySystem.Contains
Den här metoden tog tidigare in en specifik, Unity-definierad experimentell uppräkning. Nu används en MRTK-definierad uppräkning som är identisk med Unity-uppräkningen. Den här ändringen hjälper dig att förbereda MRTK för Unitys framtida gräns-API:er.
MixedRealityServiceProfileAttribute
För att bättre beskriva kraven för att stödja en profil har MixedRealityServiceProfileAttribute uppdaterats för att lägga till en valfri samling exkluderade typer. Som en del av den här ändringen har egenskapen ServiceType ändrats från Typ till Typ[] och bytt namn till RequiredTypes.
En andra egenskap, ExcludedTypes, har också lagts till.
Uppdaterar 2.0.0 till 2.1.0
API-ändringar i 2.1.0
BaseNearInteractionTouchable
BaseNearInteractionTouchable
har ändrats för att markera OnValidate
metoden som virtuell. Klasser som utökar BaseNearInteractionTouchable
(till exempel NearInteractionTouchableUnityUI
) har uppdaterats för att återspegla den här ändringen.
ColliderNearInteractionTouchable
Klassen ColliderNearInteractionTouchable
har blivit inaktuell. Uppdatera kodreferenser för att använda BaseNearInteractionTouchable
.
IMixedRealityMouseDeviceManager
Tillagd
IMixedRealityMouseDeviceManager
har lagts till CursorSpeed
och WheelSpeed
egenskaper. Med de här egenskaperna kan program ange ett multiplikatorvärde med vilket markörens och hjulets hastighet skalas.
Detta är en icke-bakåtkompatibel ändring och kräver att befintliga implementeringar av musenhetshanteraren ändras.
Anteckning
Den här ändringen är inte bakåtkompatibel med version 2.0.0.
Inaktuell
Egenskapen MouseInputProfile
har markerats som föråldrad och kommer att tas bort från en framtida version av Microsoft Mixed Reality Toolkit. Vi rekommenderar att programkoden inte längre använder den här egenskapen.
Interaktionsbar
Följande metoder och egenskaper har blivit inaktuella och kommer att tas bort från en framtida version av Microsoft Mixed Reality Toolkit. Rekommendationen är att uppdatera programkoden enligt vägledningen i attributet Föråldrad och visas i -konsolen.
public bool Enabled
public bool FocusEnabled
public void ForceUpdateThemes()
public bool IsDisabled
public bool IsToggleButton
public int GetDimensionIndex()
public State[] GetStates()
public bool RequiresFocus
public void ResetBaseStates()
public virtual void SetCollision(bool collision)
public virtual void SetCustom(bool custom)
public void SetDimensionIndex(int index)
public virtual void SetDisabled(bool disabled)
public virtual void SetFocus(bool focus)
public virtual void SetGesture(bool gesture)
public virtual void SetGestureMax(bool gesture)
public virtual void SetGrab(bool grab)
public virtual void SetInteractive(bool interactive)
public virtual void SetObservation(bool observation)
public virtual void SetObservationTargeted(bool targeted)
public virtual void SetPhysicalTouch(bool touch)
public virtual void SetPress(bool press)
public virtual void SetTargeted(bool targeted)
public virtual void SetToggled(bool toggled)
public virtual void SetVisited(bool visited)
public virtual void SetVoiceCommand(bool voice)
NearInteractionTouchableSurface
Klassen NearInteractionTouchableSurface
har lagts till och fungerar nu som basklass för NearInteractionTouchable
och NearInteractionTouchableUnityUI
.
Profiländringar i 2.1.0
Profil för handspårning
Handnätet och gemensamma visualiseringar har nu en separat redigerare och spelarinställningar. Profilen för handspårning har uppdaterats för att tillåta att dessa visualiseringar anges till. Ingenting, Allt, Redaktör eller Spelare.
Anpassade handspårningsprofiler kan behöva uppdateras för att fungera korrekt med version 2.1.0.
Anteckning
Den här ändringen är inte bakåtkompatibel med version 2.0.0.
Profil för indatasimulering
Indatasimuleringssystemet har uppgraderats, vilket ändrar några inställningar i indatasimuleringsprofilen. Vissa ändringar kan inte migreras automatiskt och användarna kan upptäcka att profiler använder standardvärden.
Alla nyckelkods- och musknappsbindningar i profilen har ersatts med en generisk
KeyBinding
struct som lagrar typen av bindning (nyckel eller mus) samt den faktiska bindningskoden (Nyckelkod eller musknappsnummer). Struct har en egen inspektör, som tillåter enhetlig visning och erbjuder ett "automatiskt bindningsverktyg" för att snabbt ange nyckelbindningar genom att trycka på respektive nyckel i stället för att välja från en enorm listruta.- FastControlKey
- VäxlaLeftHandKey
- VäxlaRightHandKey
- LeftHandManipulationKey
- RightHandManipulationKey
MouseLookToggle
ingick tidigare iMouseLookButton
uppräkningen somInputSimulationMouseButton.Focused
, det är nu ett separat alternativ. När den är aktiverad fortsätter kameran att rotera med musen efter att knappen släppts, tills escape-tangenten trycks in.HandDepthMultiplier
standardvärdet har sänkts från 0,1 till 0,03 för att hantera vissa ändringar i indatasimuleringen. Om kameran går för fort när du bläddrar kan du prova att sänka det här värdet.Nycklar för roterande händer har tagits bort, handrotation styrs nu av musen också. Om du håller
HandRotateButton
(Ctrl) tillsammans med den vänstra/högra handmanipuleringsnyckeln (LShift/Space) aktiveras handrotation.En ny axel "UpDown" har introducerats i listan över indataaxel. Detta styr kamerans rörelse i lodrätt och standardvärdet är Q/E-nycklar samt styrenhetsutlösarknappar.
Mer information om dessa ändringar finns i artikeln om indatasimuleringstjänsten .
Profil för musdataprovider
Profilen för musdataprovidern har uppdaterats för att exponera de nya CursorSpeed
egenskaperna och WheelSpeed
. Befintliga anpassade profiler har automatiskt standardvärden. När profilen sparas sparas dessa nya värden.
Mappningsprofil för kontrollant
Vissa axlar och indatatyper har uppdaterats i 2.1.0, särskilt runt OpenVR-plattformen. Se till att välja MixedRealityToolkit –> Verktyg –> Uppdatera –> Mappningsprofiler för styrenhet vid uppgradering. Detta uppdaterar alla anpassade mappningsprofiler för kontrollanter med uppdaterade axlar och data, samtidigt som dina anpassade tilldelade indataåtgärder lämnas intakta.
Uppdaterar RC2 till 2.0.0
Mellan RC2- och 2.0.0-versionerna av Microsoft Mixed Reality Toolkit gjordes ändringar som kan påverka befintliga projekt. Det här dokumentet beskriver dessa ändringar och hur du uppdaterar projekt till 2.0.0-versionen.
API-ändringar i 2.0.0
Sedan rc2-versionen har det gjorts ett antal API-ändringar, inklusive några som kan bryta befintliga projekt. I följande avsnitt beskrivs de ändringar som har inträffat mellan RC2- och 2.0.0-versionerna.
MixedRealityToolkit
Följande offentliga egenskaper för MixedRealityToolkit-objektet har blivit inaktuella.
RegisteredMixedRealityServices
innehåller inte längre insamling av registrerade tilläggstjänster och dataleverantörer.
Om du vill komma åt tilläggstjänster använder du MixedRealityServiceRegistry.TryGetService<T>
. Om du vill komma åt dataprovidrar omvandlar du tjänstinstansen till IMixedRealityDataProviderAccess
och använder GetDataProvider<T>
.
Använd MixedRealityServiceRegistry
eller CoreServices
i stället för följande inaktuella egenskaper
ActiveSystems
InputSystem
BoundarySystem
CameraSystem
SpatialAwarenessSystem
TeleportSystem
DiagnosticsSystem
SceneSystem
CoreServices
Klassen CoreServices
är ersättningen för de statiska systemåtkomsterna (t.ex. BoundarySystem) som finns i -objektet MixedRealityToolkit
.
Viktigt
Systemåtkomsterna MixedRealityToolkit
har blivit inaktuella i version 2.0.0 och kommer att tas bort i en framtida version av MRTK.
Följande kodexempel illustrerar det gamla och det nya mönstret.
// Old
GameObject playAreaVisualization = MixedRealityToolkit.BoundarySystem?.GetPlayAreaVisualization();
// New
GameObject playAreaVisualization = CoreServices.BoundarySystem?.GetPlayAreaVisualization();
Om du använder den nya CoreSystem-klassen ser du till att programkoden inte behöver uppdateras om du ändrar programmet så att det använder en annan tjänstregistrator (t.ex. en av de experimentella tjänstcheferna).
IMixedRealityRaycastProvider
Med tillägget av IMixedRealityRaycastProvider ändrades konfigurationsprofilen för indatasystemet. Om du har en anpassad profil kan du få felen i följande bild när du kör programmet.
Åtgärda dessa genom att lägga till en IMixedRealityRaycastProvider-instans i din indatasystemprofil.
Händelsesystem
- De
IMixedRealityEventSystem
gamla API-metodernaRegister
ochUnregister
har markerats som föråldrade. De bevaras för bakåtkompatibilitet. InputSystemGlobalListener
har markerats som föråldrad. Dess funktioner har inte ändrats.BaseInputHandler
basklassen har ändrats frånInputSystemGlobalListener
tillInputSystemGlobalHandlerListener
. Det här är en icke-bakåtkompatibelBaseInputHandler
ändring för underordnade till .
Motivation bakom förändringen
Det gamla händelsesystem-API: Register
et och Unregister
kan potentiellt orsaka flera problem i körningen, främst:
- Om en komponent registreras för globala händelser får den globala indatahändelser av alla typer.
- Om en av komponenterna i ett objekt registreras för globala indatahändelser får alla komponenter i det här objektet globala indatahändelser av alla typer.
- Om två komponenter i samma objekt registreras för globala händelser och sedan inaktiveras under körning, slutar den andra att ta emot globala händelser.
Nytt API RegisterHandler
och UnregisterHandler
:
- Ger en explicit och detaljerad kontroll över vilka indatahändelser som ska lyssnas globalt och vilka som ska fokuseras.
- Gör att flera komponenter i samma objekt kan lyssna på globala händelser oberoende av varandra.
Så här migrerar du
- Om du har anropat
Register
Unregister
/API:et direkt tidigare ersätter du dessa anrop med anrop tillUnregisterHandler
RegisterHandler
/ . Använd hanterargränssnitt som du implementerar som allmänna parametrar. Om du implementerar flera gränssnitt och flera av dem lyssnar på globala indatahändelser anropar duRegisterHandler
flera gånger. - Om du har ärvt från
InputSystemGlobalListener
ändrar du arv tillInputSystemGlobalHandlerListener
. ImplementeraRegisterHandlers
ochUnregisterHandlers
abstrakta metoder. I implementeringsanropetinputSystem.RegisterHandler
(inputSystem.UnregisterHandler
) för att registrera dig för alla hanterargränssnitt som du vill lyssna efter globala händelser för. - Om du har ärvt från
BaseInputHandler
implementerarRegisterHandlers
du ochUnregisterHandlers
abstraherar metoder (samma som förInputSystemGlobalListener
).
Exempel på migrering
// Old
class SampleHandler : MonoBehaviour, IMixedRealitySourceStateHandler, IMixedRealityHandJointHandler
{
private void OnEnable()
{
InputSystem?.Register(gameObject);
}
private void OnDisable()
{
InputSystem?.Unregister(gameObject);
}
}
// Migrated
class SampleHandler : MonoBehaviour, IMixedRealitySourceStateHandler, IMixedRealityHandJointHandler
{
private void OnEnable()
{
InputSystem?.RegisterHandler<IMixedRealitySourceStateHandler>(this);
InputSystem?.RegisterHandler<IMixedRealityHandJointHandler>(this);
}
private void OnDisable()
{
InputSystem?.UnregisterHandler<IMixedRealitySourceStateHandler>(this);
InputSystem?.UnregisterHandler<IMixedRealityHandJointHandler>(this);
}
}
// Old
class SampleHandler2 : InputSystemGlobalListener, IMixedRealitySpeechHandler
{
}
// Migrated
class SampleHandler2 : InputSystemGlobalHandlerListener, IMixedRealitySpeechHandler
{
private void RegisterHandlers()
{
InputSystem?.RegisterHandler<IMixedRealitySpeechHandler>(this);
}
private void UnregisterHandlers()
{
InputSystem?.UnregisterHandler<IMixedRealitySpeechHandler>(this);
}
}
// Alternative migration
class SampleHandler2 : MonoBehaviour, IMixedRealitySpeechHandler
{
private void OnEnable()
{
IMixedRealityInputSystem inputSystem;
if (MixedRealityServiceRegistry.TryGetService<IMixedRealityInputSystem>(out inputSystem))
{
inputSystem?.RegisterHandler<IMixedRealitySpeechHandler>(this);
}
}
private void OnDisable()
{
IMixedRealityInputSystem inputSystem;
if (MixedRealityServiceRegistry.TryGetService<IMixedRealityInputSystem>(out inputSystem))
{
inputSystem?.UnregisterHandler<IMixedRealitySpeechHandler>(this);
}
}
}
Rumslig medvetenhet
Gränssnitten IMixedRealitySpatialAwarenessSystem och IMixedRealitySpatialAwarenessObserver har gjort flera icke-bakåtkompatibla ändringar enligt beskrivningen nedan.
Ändringar
Följande metoder har bytt namn för att bättre beskriva deras användning.
IMixedRealitySpatialAwarenessSystem.CreateSpatialObjectParent
har bytt namn till förIMixedRealitySpatialAwarenessSystem.CreateSpatialAwarenessObservationParent
att förtydliga dess användning.
Tillägg
Baserat på kundfeedback har stöd för enkel borttagning av tidigare observerade rumsliga medvetenhetsdata lagts till.
IMixedRealitySpatialAwarenessSystem.ClearObservations()
IMixedRealitySpatialAwarenessSystem.ClearObservations<T>(string name)
IMixedRealitySpatialAwarenessObserver.ClearObservations()
Solvers
Vissa lösningskomponenter och klassen SolverHandler Manager har ändrats för att åtgärda olika buggar och för mer intuitiv användning.
SolverHandler
- Klassen utökas inte längre från
ControllerFinder
TrackedObjectToReference
public property är inaktuell och har bytt namn tillTrackedTargetType
TrackedObjectType
inaktuella värden för vänster & höger styrenhet. AnvändMotionController
i stället ellerHandJoint
värden och uppdatera den nyaTrackedHandedness
egenskapen för att begränsa spårningen till vänster eller höger kontrollant
Emellan
TrackedObjectForSecondTransform
public property är inaktuell och har bytt namn tillSecondTrackedObjectType
AttachSecondTransformToNewTrackedObject()
har tagits bort. Om du vill uppdatera lösaren ändrar du de offentliga egenskaperna (d.v.sSecondTrackedObjectType
. )
SurfaceMagnetism
MaxDistance
public property är inaktuell och har bytt namn tillMaxRaycastDistance
CloseDistance
public property är inaktuell och har bytt namn tillClosestDistance
- Standardvärdet för
RaycastDirectionMode
är nuTrackedTargetForward
vilket raycasts i riktning mot den spårade måltransformen framåt OrientationMode
uppräkningsvärdenaVertical
och , har bytt namn tillTrackedTarget
respektiveSurfaceNormal
Full
KeepOrientationVertical
offentlig egendom har lagts till för att kontrollera om orienteringen för tillhörande GameObject förblir lodrät
Knappar
PressableButton
nu harDistanceSpaceMode
egenskapen inställd påLocal
som standard. Detta gör att knappar kan skalas samtidigt som de fortfarande kan tryckas ned
Urklippssfär
Gränssnittet ClippingSphere har ändrats för att spegla API:erna som finns i Urklippslådan och ClippingPlane.
Egenskapen ClippingSpheres Radius beräknas nu implicit baserat på transformeringsskalan. Innan utvecklare måste ange radien för ClippingSphere i inspektören. Om du vill ändra radien uppdaterar du transformeringsskalan precis som vanligt.
NearInteractionTouchable och PokePointer
- NearInteractionTouchable hanterar inte att Unity UI-arbetsytan rör vid längre. Klassen NearInteractionTouchableUnityUI måste användas för Unity UI-touchables nu.
- ColliderNearInteractionTouchable är den nya basklassen för beröringsbara objekt som baseras på colliders, d.v.s. alla beröringsbara förutom NearInteractionTouchableUnityUI.
- BaseNearInteractionTouchable.DistFront har flyttats och bytt namn till PokePointer.TouchableDistance Detta är avståndet och som PokePointer kan interagera med pekbara. Tidigare hade varje pekbar sitt eget maximala interaktionsavstånd, men nu definieras detta i PokePointer som möjliggör bättre optimering.
- BaseNearInteractionTouchable.DistBack har bytt namn till PokeThreshold Detta gör det tydligt att PokeThreshold är motsvarigheten till DebounceThreshold. En pekbar aktiveras när PokeThreshold korsas och släpps när DebounceThreshold korsas.
ReadOnlyAttribute
Namnområdet Microsoft.MixedReality.Toolkit
har lagts till i ReadOnlyAttribute
, BeginReadOnlyGroupAttribute
och EndReadOnlyGroupAttribute
.
PointerClickHandler
Klassen PointerClickHandler
har blivit inaktuell. PointerHandler
Bör användas i stället, det ger samma funktioner.
Stöd för HoloLens-klickning
HoloLens-klickerns kontrollantmappningar har ändrats från att vara en ohanterad WindowsMixedRealityController
till att vara en ohanterad WindowsMixedRealityGGVHand
. För att ta hänsyn till detta körs en automatisk uppdatering första gången du öppnar din ControllerMapping-profil. Öppna anpassade profiler minst en gång efter uppgraderingen till 2.0.0 för att utlösa det här engångsmigreringssteget.
InteractableHighlight
Klassen InteractableHighlight
har blivit inaktuell. Klassen InteractableOnFocus
och FocusInteractableStates
tillgången ska användas i stället. Om du vill skapa en ny Theme
tillgång för InteractableOnFocus
högerklickar du i projektfönstret och väljer Skapa>Mixed Reality Toolkit>Interaktionsbart>tema.
HandInteractionPanZoom
HandInteractionPanZoom
har flyttats till UI-namnområdet eftersom det inte var en indatakomponent. HandPanEventData
har också flyttats till det här namnområdet och förenklats för att motsvara andra UI-händelsedata.
Ändringar av sammansättningsnamn i 2.0.0
I versionen 2.0.0 har alla officiella Mixed Reality Toolkit-sammansättningsnamn och deras associerade sammansättningsdefinitionsfiler (.asmdef) uppdaterats så att de passar följande mönster.
Microsoft.MixedReality.Toolkit[.<name>]
I vissa fall har flera sammansättningar slagits samman för att skapa bättre enighet i innehållet. Om ditt projekt använder anpassade .asmdef-filer kan de behöva uppdateras.
Följande tabeller beskriver hur filnamnen RC2 .asmdef mappas till versionen 2.0.0. Alla sammansättningsnamn matchar filnamnet .asmdef.
MixedRealityToolkit
RC2 | 2.0.0 |
---|---|
MixedRealityToolkit.asmdef | Microsoft.MixedReality.Toolkit.asmdef |
MixedRealityToolkit.Core.BuildAndDeploy.asmdef | Microsoft.MixedReality.Toolkit.Editor.BuildAndDeploy.asmdef |
MixedRealityToolkit.Core.Definitions.Utilities.Editor.asmdef | Borttaget använder du Microsoft.MixedReality.Toolkit.Editor.Utilities.asmdef |
MixedRealityToolkit.Core.Extensions.EditorClassExtensions.asmdef | Microsoft.MixedReality.Toolkit.Editor.ClassExtensions.asmdef |
MixedRealityToolkit.Core.Inspectors.asmdef | Microsoft.MixedReality.Toolkit.Editor.Inspectors.asmdef |
MixedRealityToolkit.Core.Inspectors.ServiceInspectors.asmdef | Microsoft.MixedReality.Toolkit.Editor.ServiceInspectors.asmdef |
MixedRealityToolkit.Core.UtilitiesAsync.asmdef | Microsoft.MixedReality.Toolkit.Async.asmdef |
MixedRealityToolkit.Core.Utilities.Editor.asmdef | Microsoft.MixedReality.Toolkit.Editor.Utilities.asmdef |
MixedRealityToolkit.Utilities.Gltf.asmdef | Microsoft.MixedReality.Toolkit.Gltf.asmdef |
MixedRealityToolkit.Utilities.Gltf.Importers.asmdef | Microsoft.MixedReality.Toolkit.Gltf.Importers.asmdef |
MixedRealityToolkit.Providers
RC2 | 2.0.0 |
---|---|
MixedRealityToolkit.Providers.OpenVR.asmdef | Microsoft.MixedReality.Toolkit.Providers.OpenVR.asmdef |
MixedRealityToolkit.Providers.WindowsMixedReality.asmdef | Microsoft.MixedReality.Toolkit.Providers.WindowsMixedReality.asmdef |
MixedRealityToolkit.Providers.WindowsVoiceInput.asmdef | Microsoft.MixedReality.Toolkit.Providers.WindowsVoiceInput.asmdef |
MixedRealityToolkit.Services
RC2 | 2.0.0 |
---|---|
MixedRealityToolkit.Services.BoundarySystem.asmdef | Microsoft.MixedReality.Toolkit.Services.BoundarySystem.asmdef |
MixedRealityToolkit.Services.CameraSystem.asmdef | Microsoft.MixedReality.Toolkit.Services.CameraSystem.asmdef |
MixedRealityToolkit.Services.DiagnosticsSystem.asmdef | Microsoft.MixedReality.Toolkit.Services.DiagnosticsSystem.asmdef |
MixedRealityToolkit.Services.InputSimulation.asmdef | Microsoft.MixedReality.Toolkit.Services.InputSimulation.asmdef |
MixedRealityToolkit.Services.InputSimulation.Editor.asmdef | Microsoft.MixedReality.Toolkit.Services.InputSimulation.Editor.asmdef |
MixedRealityToolkit.Services.InputSystem.asmdef | Microsoft.MixedReality.Toolkit.Services.InputSystem.asmdef |
MixedRealityToolkit.Services.Inspectors.asmdef | Microsoft.MixedReality.Toolkit.Services.InputSystem.Editor.asmdef |
MixedRealityToolkit.Services.SceneSystem.asmdef | Microsoft.MixedReality.Toolkit.Services.SceneSystem.asmdef |
MixedRealityToolkit.Services.SpatialAwarenessSystem.asmdef | Microsoft.MixedReality.Toolkit.Services.SpatialAwarenessSystem.asmdef |
MixedRealityToolkit.Services.TeleportSystem.asmdef | Microsoft.MixedReality.Toolkit.Services.TeleportSystem.asmdef |
MixedRealityToolkit.SDK
RC2 | 2.0.0 |
---|---|
MixedRealityToolkit.SDK.asmdef | Microsoft.MixedReality.Toolkit.SDK.asmdef |
MixedRealityToolkit.SDK.Inspectors.asmdef | Microsoft.MixedReality.Toolkit.SDK.Inspectors.asmdef |
MixedRealityToolkit.Examples
RC2 | 2.0.0 |
---|---|
MixedRealityToolkit.Examples.asmdef | Microsoft.MixedReality.Toolkit.Examples.asmdef |
MixedRealityToolkit.Examples.Demos.Gltf.asmdef | Microsoft.MixedReality.Toolkit.Demos.Gltf.asmdef |
MixedRealityToolkit.Examples.Demos.StandardShader.Inspectors.asmdef | Microsoft.MixedReality.Toolkit.Demos.StandardShader.Inspectors.asmdef |
MixedRealityToolkit.Examples.Demos.Utilities.InspectorFields.asmdef | Microsoft.MixedReality.Toolkit.Demos.InspectorFields.asmdef |
MixedRealityToolkit.Examples.Demos.Utilities.InspectorFields.Inspectors.asmdef | Microsoft.MixedReality.Toolkit.Demos.InspectorFields.Inspectors.asmdef |
MixedRealityToolkit.Examples.Demos.UX.Interactables.asmdef | Microsoft.MixedReality.Toolkit.Demos.UX.Interactables.asmdef |