MRTK-Einführung Verwenden des Mixed Reality-Toolkits Unity für grundlegende Interaktionen (HoloLens 2, HoloLens, Windows Mixed Reality, Open VR)MRTK 101: How to use Mixed Reality Toolkit Unity for Basic Interactions (HoloLens 2, HoloLens, Windows Mixed Reality, Open VR)

MRTK

Erfahren Sie, wie Sie das MRTK nutzen, um einige der am häufigsten verwendeten Interaktionsmuster in Mixed Reality umzusetzen.Learn about how to use MRTK to achieve some of the most widely used common interaction patterns in mixed reality.

  • Wie lassen sich Eingabeinteraktionen im Unity-Editor simulieren?How to simulate input interactions in Unity editor?
  • Wie lässt sich ein Objekt greifen und bewegen?How to grab and move an object?
  • Wie wird die Größe eines Objekts geändert?How to resize an object?
  • Wie lässt sich ein Objekt präzise bewegen oder drehen?How to move or rotate an object with precision?
  • Wie lässt man ein Objekt auf Eingabeereignisse reagieren?How to make an object respond to input events?
  • Wie wird visuelles Feedback implementiert?How to add visual feedback?
  • Wie kann Audiofeedback hinzugefügt werden?How to add audio feedback?
  • Wie werden Prefabs für Schaltflächen im HoloLens 2-Stil verwendet?How to use HoloLens 2 style button prefabs?
  • Wie lässt man sich von einem Objekt folgen?How to make an object follow you?
  • Wie erreicht man, dass ein Objekt sich einem zuwendet?How to make an object face you?

Wie lassen sich Eingabeinteraktionen im Unity-Editor simulieren?How to simulate input interactions in Unity editor?

MRTK unterstützt die Simulation von Eingaben im Editor.MRTK supports in-editor input simulation. Führen Sie die Szene einfach durch Klicken auf die Wiedergabe Schaltfläche in Unity aus.Simply run your scene by clicking Unity's play button. Verwenden der Tasten zum Simulieren von Eingaben.Use these keys to simulate input. Drücken Sie die Tasten W, A, S, D, um die Kamera zu bewegen.Press W, A, S, D keys to move the camera. Halten Sie die rechte Maustaste gedrückt, und bewegen Sie die Maus, um sich umzusehen.Hold the right mouse button and move the mouse to look around. Um die simulierten Hände anzuzeigen, drücken Sie die LEERTASTE (rechte Hand) oder die linke UMSCHALTTASTE (linke Hand). Um die simulierten Hände ständig anzuzeigen, drücken Sie die T- oder die Y-Taste. Um die simulierten Hände zu drehen, drücken Sie Q oder E (horizontal) bzw. R oder F (vertikal).To bring up the simulated hands, press Space bar(Right hand) or left Shift key(Left hand) To keep simulated hands in the view, press T or Y key To rotate simulated hands, press Q or E(horizontal) / R or F(vertical)

Wie lässt sich ein Objekt greifen und bewegen?How to grab and move an object?

Um ein Objekt greifbar zu machen, weisen Sie diese beiden Skripts zu: „ManipulationHandler.cs“ und „NearInteractionGrabbable.cs“ (für direktes Greifen mit Eingabe durch artikuliertes Hand-Tracking). ManipulationHandler unterstützt sowohl Nah- als auch Fern-Interaktionen.To make an object grabbable, assign these two scripts: ManipulationHandler.cs and NearInteractionGrabbable.cs(for direct grab with articulated hand tracking input) ManipulationHandler supports both near and far interactions. Sie können ein Objekt durch die Eingabe mittels artikuliertem Hand-Tracking (nah), Handstrahl (fern), den Strahl des Motion Controllers (fern), den Anvisier-Cursor von HoloLens und Tippen in die Luft (fern) greifen und bewegen.You can grab and move an object with HoloLens 2's articulated hand tracking input(near), hand ray(far), motion controller's beam(far), HoloLens gaze cursor & air-tap(far).

NearInteractionGrabbable and ManipulationHandler.cs assigned to an object NearInteractionGrabbable and ManipulationHandler.cs assigned to an object

Wie wird die Größe eines Objekts geändert?How to resize an object?

ManipulationHandler.cs unterstützt die beidhändige Skalierung/Drehung.ManipulationHandler.cs supports two-handed scale/rotation. Dies funktioniert mit verschiedenen Eingabetypen, wie z. B. der Handeingabe von HoloLens 2, der Eingabe durch Anvisieren und Gesten von HoloLens 1 und der Motion Controller-Eingabe des immersiven Headsets für Windows Mixed Reality.This works with various input types such as HoloLens 2's articulated hand input, HoloLens 1's gaze + gesture input, and Windows Mixed Reality immersive headset's motion controller input.

NearInteractionGrabbable and ManipulationHandler.cs assigned to an object

Wie lässt sich ein Objekt präzise bewegen oder drehen?How to move or rotate an object with precision?

Weisen Sie einem Objekt BoundingBox.cs zu, um Begrenzungsrahmen zu verwenden, die die Oberfläche zum Skalieren und Drehen von Objekten darstellen.Assign BoundingBox.cs to an object to use Bounding Box which is the interface for scaling and rotating an object. Standardmäßig werden blaue Ziehpunkte und Drahtlinien im Stil von HoloLens 1 angezeigt.By default, it shows HoloLens 1 style blue handles and wires. Um näherungsbasierte animierte Ziehpunkte im HoloLens 2-Stil zu verwenden, müssen Sie Prefabs und Materialien zuweisen.To use HoloLens 2 style proximity-based animated handles, you need to assign prefabs and materials. Informationen zu den Konfigurationsdetails finden Sie in der Bounding Box-Dokumentation und der BoundingBoxExamples.unity-Szene.Please refer to Bounding Box documentation and the BoundingBoxExamples.unity scene for the configuration details.

BoundingBox.cs assigned to an object BoundingBox.cs assigned to an object

Wie lässt man ein Objekt auf Eingabeereignisse reagieren?How to make an object respond to input events?

Weisen Sie einem Objekt PointerHandler.cs zu.Assign PointerHandler.cs to an object. Im Inspektor können Sie die Ereignisse OnPointerDown (), OnPointerUp (), OnPointerClicked () und OnPointerDragged () verwenden. Um diese Ereignisse in einem Skript zu verwenden, implementieren Sie IMixedRealityPointerHandler.In the inspector, you will be able to use events OnPointerDown(), OnPointerUp(), OnPointerClicked(), OnPointerDragged() To use these events in a script, implement IMixedRealityPointerHandler.

PointerHandler.cs assigned to an object

Wie wird visuelles Feedback implementiert?How to add visual feedback?

Zuweisen von Interactable.cs zu einem Objekt.Assign Interactable.cs to an object. Erstellen Sie im Inspektor ein neues Design.In the inspector, create a new theme. Mithilfe der Designprofile von Interactable können Sie allen verfügbaren Interaktionszuständen auf einfache Weise visuelles Feedback hinzufügen.Using Interactable's theme profiles, you can easily add visual feedback to all available input interaction states.

PointerHandler.cs assigned to an object Interactable

Interactable stellt verschiedene Arten von Designs zur Verfügung, einschließlich des Shader-Designs, mit dem Sie die Eigenschaften des Shaders pro Interaktionszustand steuern können.Interactable provides various types of themes including the shader theme which allows you to control properties of the shader per interaction state.

Ein weiterer wichtiger Baustein für visuelles Feedback ist der MRTK-Standardshader.Another important building block for visual feedback is the MRTK Standard Shader. Mit dem MRTK-Standardshader können Sie auf einfache Weise visuelle Feedbackeffekte hinzufügen, wie das Licht beim Draufzeigen und Näherungslicht.With MRTK Standard Shader, you can easily add visual feedback effects such as hover light and proximity light. Da der MRTK-Standardshader erheblich weniger Berechnungen als der Unity-Standardshader ausführt, können Sie ein leistungsstarkes Verhalten erreichen.Since MRTK Standard shader performs significantly less computation than the Unity Standard shader, you can create a performant experience.

Erstellen Sie ein neues Material, und wählen Sie den Shader „Mixed Reality Toolkit > Standard“ aus.Create a new material and select the Shader 'Mixed Reality Toolkit > Standard'. Alternativ können Sie eins der vorhandenen Materialien auswählen, die den MRTK-Standardshader verwenden.Or you can pick one of the existing materials that use MRTK Standard Shader.

MRTK Standard Shader

MRTK Standard Shader MRTK Standard Shader

Wie kann Audiofeedback hinzugefügt werden?How to add audio feedback?

Fügen Sie einem Objekt AudioSource hinzu.Add AudioSource to an object. Weisen Sie dann in den Skripts, die Eingabeereignisse verfügbar machen (z. B. Interactable.cs oder PointerHandler.cs) das Objekt dem Ereignis zu, und wählen Sie AudioSource.PlayOneShot() aus.Then, in the scripts that exposes input events(e.g. Interactable.cs or PointerHandler.cs), assign the object to the event and select AudioSource.PlayOneShot(). Sie können eigene Audioclips verwenden oder einen aus den Audioressourcen des MRTK auswählen.You can use your audio clips or choose one from MRTK's audio assets.

Audio Source assigned to an object. AudioSource.PlayOneShot configured in the Interactable's OnPress() and OnRelease() events.

Wie werden Prefabs für Schaltflächen im HoloLens 2-Stil verwendet?How to use HoloLens 2 style button prefabs?

MRTK bietet verschiedene Typen von Schaltflächen im Stil der HoloLens 2-Shell (Betriebssystem).MRTK provides various types of HoloLens 2's shell(OS) style buttons. Es stehen raffinierte visuelle Feedbacks wie etwa Näherungslicht, ein gestauchtes Feld und ein Kräuseleffekt auf der Schaltflächenoberfläche zur Verfügung.It provides sophisticated visual feedbacks such as proximity light, compressing box, and a ripple effect on the button surface.

Interactable

Legen Sie einfach eins der Prefabs für eine drückbare Schaltfläche im HoloLens 2-Stil per Drag & Drop in Ihrer Szene ab.Simply drag and drop one of the HoloLens 2 style pressable button prefab into your scene. Das Prefab verwendet Interactable.cs, die oben vorgestellt wurde.The prefab uses Interactable.cs which is introduced above. Sie können in Interactable verfügbar gemachte Ereignisse wie OnClick() verwenden, um Aktionen auszulösen.You can use exposed events such as OnClick() in the Interactable to trigger actions.

HoloLens 2 Button Prefab

Wie lässt man sich von einem Objekt folgen?How to make an object follow you?

Weisen Sie einem Objekt das RadialView.cs-Skript zu.Assign RadialView.cs script to an object. Es ist Teil der Solver-Reihe von Skripts, die Ihnen verschiedene Arten von Objektpositionierung im 3D-Raum ermöglichen.It is part of the Solver script series that allows you to achieve various types of object positioning in 3D space. SolverHandler.cs wird automatisch hinzugefügt.SolverHandler.cs will be automatically added. Unten finden Sie ein Beispiel der RadialView-Konfiguration, um ein „Hinterhertrotten“-Folgeverhalten zu erreichen, ähnlich wie das Startmenü in der HoloLens-Shell.Below is an example of RadialView configuration to achieve 'lazy follow' tag-along behavior just like the Start menu in the HoloLens shell. Sie können die minimale/maximale Entfernung und den minimalen/maximalen Ansichtswinkel angeben.You can specify the minimum/maximum distance and minimum/maximum view degrees. Im Beispiel unten ist die Positionierung des Objekts zwischen 0,4 m und 0,8 m in einem Bereich von 15 ° dargestellt.The example below shows positioning the object between 0.4m and 0.8m range within 15°. Passen Sie die Werte für die Lerp-Zeit an, um das Aktualisieren der Position schneller oder langsamer erfolgen zu lassen.Adjust Lerp Time values to make the positional update faster or slower.

MRTK Standard Shader Interactable

Wie erreicht man, dass ein Objekt sich einem zuwendet?How to make an object face you?

Weisen Sie einem Objekt das Billboard.cs-Skript zu.Assign Billboard.cs script to an object. Das Objekt wendet sich Ihnen dann immer zu, unabhängig von Ihrer Position.It will always face you, regardless of your position. Sie können die Pivotachsenoption angeben.You can specify the pivot axis option.

Billboard.cs script assigned to an object with Pivot Axis option Y Billboard.cs script assigned to an object with Pivot Axis option Y

Sind Sie bereit, beeindruckende Erlebnisse für Mixed Reality zu gestalten?Ready to create amazing experiences for mixed reality? Besuchen Sie die unten angegebenen Seiten, und erfahren Sie mehr über MRTK und Mixed Reality.Visit the pages below and learn more about MRTK and mixed reality.

Informationen zum AutorAbout the author

Picture of Dong Yoon Park Dong-Yoon-ParkDong Yoon Park
UX-Designer @MicrosoftUX Designer @Microsoft

Siehe auchSee also