1. Erste Schritte mit Holographic Remoting am PC1. Getting started with PC Holographic Remoting

Willkommen bei den HoloLens 2-Tutorials.Welcome to the HoloLens 2 tutorials. In dieser zweiteiligen Tutorialreihe erfahren Sie, wie Sie eine Mixed Reality-Demo und eine PC-App für Holographic Remoting erstellen.In this two-part tutorial series, you will learn how to create a mixed reality experience demonstration and how to create a PC app for Holographic Remoting.

In diesem Tutorial erfahren Sie, wie Sie eine Mixed Reality-Erfahrung erstellen.In this tutorial, you'll learn how to create a mixed reality experience. Es werden Benutzeroberflächenelemente, 3D-Modellbearbeitung, Modellclipping und Funktionen für Eye-Tracking veranschaulicht.It will demonstrate UI elements, 3D model manipulation, model clipping, and eye-tracking features.

Im zweiten Tutorial, Erstellen einer Holographic Remoting-Anwendung, erfahren Sie, wie Sie eine PC-App für Holographic Remoting erstellen.In the second tutorial, Create a Holographic Remoting application, you will learn how to create a PC app for Holographic Remoting. Stellen Sie jederzeit eine Verbindung mit HoloLens 2 her, um 3D-Inhalte in Mixed Reality visuell darzustellen.And connect to HoloLens 2 at any point, providing a way to visualize 3D content in mixed reality.

ZieleObjectives

  • Importieren von Assets und Einrichten der SzeneImport assets and set up the scene
  • Interagieren mit Hologrammen über Elemente und Schaltflächen der BenutzeroberflächeInteract with holograms using UI elements and buttons
  • Konfigurieren von 3D-Objekten für das ClippingfeatureConfigure 3D objects for the clipping feature
  • Weitere Informationen zum Aktivieren von QuickInfos mit Eye-TrackingLearn about activating tooltips with eye-tracking

VoraussetzungenPrerequisites

  • Ein Windows 10-PC, der mit den richtigen Tools konfiguriert istA Windows 10 PC configured with the correct tools installed
  • Gundkenntnisse der C#-ProgrammierungBasic c# programming knowledge
  • Ein für die Entwicklung konfiguriertes HoloLens 2-GerätA HoloLens 2 device configured for development
  • Unity Hub mit installiertem Unity 2019 LTS und hinzugefügtem Buildunterstützungsmodul für die Universelle Windows-PlattformUnity Hub with Unity 2019 LTS mounted, and the Universal Windows Platform Build Support module added

Wir empfehlen dringend, die Tutorialserie Erste Schritte durchzuarbeiten, oder dass Sie bereits einige grundlegende Erfahrung mit Unity und MRTK besitzen, bevor Sie fortfahren.We strongly recommend completing the Getting started tutorials series or some basic prior experience with Unity and MRTK before continuing.

Wichtig

  • Die empfohlene Unity-Version für diese Tutorialserie ist Unity 2019 LTS.The recommended Unity version for this tutorial series is Unity 2019 LTS. Sie ersetzt alle Anforderungen oder Empfehlungen bezüglich der Unity-Version, die in den oben verknüpften Voraussetzungen genannt werden.It supersedes any Unity version requirements or recommendations stated in the prerequisites linked above.
  • Holographic-Remoting mit MRTK-Projekten funktioniert nur mit Legacy XR.Holographic Remoting with MRTK projects will only work with legacy XR. Das XR SDK wird derzeit nicht unterstützt.XR SDK is not supported at this time.

Erstellen und Vorbereiten des Unity-ProjektsCreating and preparing the Unity project

In diesem Abschnitt erstellen Sie ein neues Unity-Projekt und bereiten es für die MRTK-Entwicklung vor.In this section, you will create a new Unity project and get it ready for MRTK development.

Befolgen Sie zu diesem Zweck zunächst die Anweisungen unter Initialisieren des Projekts und der ersten Anwendung, jedoch ohne die Anweisungen zum Erstellen Ihrer Anwendung auf Ihrem Gerät, die die folgenden Schritte beinhalten:For this, first follow the Initializing your project and first application, excluding the Build your application to your device instructions, which includes the following steps:

  1. Erstellen eines neuen Unity-Projekts, das mit einem passenden Namen bezeichnet wird, beispielsweise MRTK-TutorialsCreating the Unity project and give it a suitable name, for example, MRTK Tutorials

  2. Wechseln der BuildplattformSwitching the build platform

  3. Importieren der TextMeshPro Essential-RessourcenImporting the TextMeshPro Essential Resources

  4. Importieren des Mixed Reality-ToolkitsImporting the Mixed Reality Toolkit

  5. Konfigurieren des Unity-ProjektsConfiguring the Unity project

  6. Erstellen und Festlegen der Szene und Bezeichnen der Szene mit einem passenden Namen, z. B. PC Holographic RemotingCreating and setting the scene and give the scene a suitable name, for example, PC Holographic Remoting

Befolgen Sie dann die Anweisungen unter Ändern der Anzeigeoption der räumlichen Wahrnehmung, um das DefaultHoloLens2ConfigurationProfile als MRTK-Konfigurationsprofil für Ihre Szene festzulegen.Then follow the Changing the Spatial Awareness Display Option instructions to change the MRTK configuration profile for your scene to the DefaultHoloLens2ConfigurationProfile. Legen Sie die Anzeigeoptionen für das Gittermodell für räumliche Wahrnehmung auf Occlusion (Verdeckung) fest.Change the display options for the spatial awareness mesh to Occlusion.

Importieren der TutorialressourcenImporting the tutorial assets

Laden Sie MRTK.Tutorials.PCHolographicRemoting.unitypackage herunter, und importieren Sie das Paket.Download and import the MRTK.Tutorials.PCHolographicRemoting.unitypackage.

Tipp

Wenn Sie eine Auffrischung zum Importieren eines benutzerdefinierten Unity-Pakets benötigen, lesen Sie die Anweisungen unter Importieren des Mixed Reality-Toolkits.For a reminder on how to import a Unity custom package, you can refer to the Import the Mixed Reality Toolkit instructions.

Nach dem Importieren der Tutorialressourcen sollte Ihr Projektfenster ähnlich wie die folgende Abbildung aussehen:After importing the tutorial assets, your Project window should look similar to this:

Unity-Fenster „Hierarchie“, „Szene“ und „Projekt“ nach dem Importieren der Tutorialressourcen

Konfigurieren und Vorbereiten der SzeneConfiguring and preparing the scene

In diesem Abschnitt bereiten Sie die Szene vor, indem Sie einige der Tutorial-Prefabs hinzufügen.In this section, you will prepare the scene by adding some of the tutorial prefabs.

Navigieren Sie im Projektfenster zum Ordner Assets > MRTK.Tutorials.PCHolograhicRemoting > Prefabs.In the Project window, navigate to Assets > MRTK.Tutorials.PCHolograhicRemoting > Prefabs folder. Klicken Sie mit gedrückter STRG-Taste auf die folgenden sechs Prefabs.While holding down the CTRL button, click on the below six prefabs.

  • ButtonParentButtonParent
  • ClippingObjectsClippingObjects
  • HandSpatialMapButtonHandSpatialMapButton
  • AnweisungenInstructions
  • ModelParentModelParent
  • PlatformPlatform

Unity mit ausgewähltem Prefabs, die der Szene hinzugefügt werden sollen

Ziehen Sie diese Modelle mithilfe von Drag & Drop aus dem Ordner „prefabs“ in das Hierarchiefenster.Drag-and-drop these models from the prefabs folder into the Hierarchy window.

Unity mit neu hinzugefügten, noch ausgewählten Prefabs

Um sich auf die Objekte in der Szene zu konzentrieren, können Sie auf das ModelParent-Objekt doppelklicken und die Ansicht dann etwas verkleinern:To focus in on the objects in the scene, you can double-click on the ModelParent object, and then zoom slightly in again:

Unity mit ModelParent-Objekt im Fokus

Tipp

Wenn Sie die großen Symbole in Ihrer Szene, beispielsweise die mit großen Rahmen umgebenen 'T'-Symbole, irritierend finden, können Sie diese ausblenden, indem Sie die Gizmos umschalten (in die Position „Aus“).If you find the large icons in your scene, such as, the large framed 'T' icons distracting, you can hide these by toggling the Gizmos to the off position.

Konfigurieren der Schaltflächen zum Betreiben der SzeneConfiguring the buttons to operate the scene

In diesem Abschnitt fügen Sie in der Szene Skripts hinzu, um Schaltflächenereignisse zu erstellen, die die Grundlagen von Modellwechsel und Clippingfunktionalität veranschaulichen.In this section, you will add scripts into the scene to create button events demonstrating the fundamentals of model switching and clipping functionality.

1. Konfigurieren der Komponente „Interactable (Script)“1. Configuring the Interactable (Script) component

Klappen Sie im Hierarchiefenster das ButtonParent-Objekt auf, und wählen Sie dann NextButton aus.In the Hierarchy window, expand the ButtonParent object and select the NextButton. Suchen Sie im Inspektor-Fenster nach der Komponente Interactable (Script) , und klicken Sie unter dem OnClick () -Ereignis auf das Symbol + .In the Inspector window, locate the Interactable (Script) component and click on + icon under OnClick () event.

Unity mit hinzugefügtem OnClick-Ereignis für NextButton

Klicken Sie bei immer noch im Hierarchiefenster ausgewähltem NextButton-Objekt auf das ButtonParent-Objekt, und ziehen Sie es auf das leere None (Object) -Feld des Ereignislisteners, den Sie soeben hinzugefügt haben, um das ButtonParent-Objekt auf Geklickt-Ereignissen für diese Schaltfläche lauschen zu lassen:With the NextButton object still selected in the Hierarchy window, click-and-drag the ButtonParent object from the Hierarchy window into the empty None (Object) field of the event you just added to make the ButtonParent object listen for button click event from this button:

Unity mit konfiguriertem OnClick-Ereignislistener für NextButton

Klicken Sie auf die Dropdownliste No Function des gleichen Ereignisses.Click the No Function dropdown of the same event. Wählen Sie dann ViewButtonControl > NextModel () aus, um die NextModel () -Funktion als die Aktion festzulegen, die ausgelöst wird, wenn das Ereignis „Schaltfläche gedrückt“ von dieser Schaltfläche ausgelöst wird:Then select ViewButtonControl > NextModel () to set the NextModel () function as the action that is triggered when the button pressed events is fired from this button:

Unity mit Pfad zur OnClick-Ereignisaktionsauswahl für NextButton

2. Konfigurieren der verbleibenden Schaltflächen2. Configuring the remaining buttons

Führen Sie für jede der verbleibenden Schaltflächen den oben beschriebenen Vorgang aus, um den OnClick () -Ereignissen Funktionen zuzuweisen:For each of the remaining buttons, complete the process outlined above to assign functions to the OnClick () events:

  • Weisen Sie für das PreviousButton-Objekt die Funktion ViewButtonControl l > PreviousModel () zu.For PreviousButton object, assign the ViewButtonContro l > PreviousModel () function.

  • Wählen Sie für ClippingButton die Funktion ToggleButton > ToggleClipping () aus.For ClippingButton select ToggleButton > ToggleClipping () function.

3. Konfigurieren der Komponenten „View Button Control (Script)“ und „Toggle Button (Script)“3. Configuring the View Button Control (Script) and Toggle Button (Script) components

Nun sind Ihre Schaltflächen so konfiguriert, dass Sie die Modellwechsel- und Clippingfunktionen veranschaulichen können.Now your buttons are configured to demonstrate the model switching and clipping functionality. Es ist an der Zeit, dem Skript 3D-Modelle und die Clippingobjekte hinzuzufügen.It is time to add 3D models and the clipping objects to the script.

Wir haben sechs verschiedene 3D-Modelle zur Demonstrationszwecken bereitgestellt. Erweitern Sie das *ModelParentobject _, um diese 3D-Modelle verfügbar zu machen.We have provided six different 3D models for demonstration, expand the *ModelParentobject _ to expose these 3D models.

Während das ButtonParent-Objekt weiterhin im Hierarchiefenster ausgewählt ist, suchen Sie im Inspektor-Fenster nach der Komponente _ View Button Control (Script) *, und erweitern Sie die Variable Models.With the ButtonParent object still selected in the Hierarchy window, in the Inspector window, locate the _ View Button Control (Script)* component and expand the Models variable.

Geben Sie im Feld Size (Größe) die Anzahl der 3D-Modelle ein, die Sie in Ihrer Szene verwenden möchten.In the Size field, enter the number of 3D models you would like to have in your scene. In diesem Fall sind es sechs Modelle.In this case, it would be six. Es werden Felder zum Hinzufügen neuer 3D-Modelle erstellt.It will create fields for adding new 3D models.

Unity mit Feldern der ViewButtonControl-Skriptkomponente

Verschieben Sie jedes untergeordnete Objekt des ModelParent-Objekts mithilfe von Drag & Drop in diese Felder.Drag and drop each child object of ModelParent Object into these fields.

Unity mit konfigurierten Feldern der ViewButtonControl-Skriptkomponente

Ziehen Sie das ClippingObjects-Objekt mithilfe von Drag & Drop aus dem Hierarchiefenster in das Feld Clipping Object der Komponente Toggle Button (Script) .Drag and drop the ClippingObjects object from the Hierarchy window to the Toggle Button (Script) component Clipping Object field.

Hinweis

Bleiben Sie die ganze Zeit ausschließlich im übergeordneten Objekt der Schaltfläche.Stay in button parent object only.

Unity mit konfiguriertem Feld der ToggleButton-Skriptkomponente

Wählen Sie im Hierarchiefenster das Prefab ClippingObjects aus, und aktivieren Sie es im Inspektor-Fenster, um die Clippingobjekte zu aktivieren.In the Hierarchy window, select the ClippingObjects prefab and enable it in the Inspector window to turn on the Clipping objects.

Konfigurieren der Clippingobjekte, um das Clippingfeature zu aktivierenConfiguring the clipping objects to enable clipping feature

In diesem Abschnitt fügen Sie den Renderer für untergeordnete Objekte des MarsCuriosityRover-Objekts einem einzelnen Clippingobjekt hinzu, um das Clipping des MarsCuriosityRover-Modells zu veranschaulichen.In this section, you will add MarsCuriosityRover object's child objects renderer into an individual clipping object to demonstrate the clipping of the MarsCuriosityRover model.

Erweitern Sie im Hierarchiefenster das ClippingObjects-Objekt, um die drei unterschiedlichen Clippingobjekte verfügbar zu machen, die Sie in diesem Projekt verwenden.In the Hierarchy window, expand the ClippingObjects object to expose the three different clipping objects that you will be using in this project.

Um das ClippingSphere-Objekt zu konfigurieren, klicken Sie darauf, und suchen Sie dann im Inspektor-Fenster nach der Komponente Clipping Sphere (Script) .To configure the ClippingSphere object, click on it, and in the Inspector window, locate the Clipping Sphere (Script) component. Geben Sie die Anzahl der Renderer, die Sie für das 3D-Modell hinzufügen müssen, in das Größenfeld ein.Enter the number of renderers in the size field that you need to add for your 3D model. Fügen Sie in diesem Fall 10 Renderer für untergeordnete MarsCuriosityRover-Objekte hinzu.In this case, add 10 for MarsCuriosityRover child objects. Er werden Felder zum Hinzufügen von Renderern erstellt. Ziehen Sie untergeordnete Modellobjekte des MarsCuriosityRover-Objekts mithilfe von Drag & Drop in diese Felder.It will create fields for adding renderers, drag and drop MarsCuriosityRover Object's child model objects into these fields.

Unity mit konfigurierten Feldern der ClippingSphere-Skriptkomponente

Führen Sie den gleichen Vorgang aus, und fügen Sie den ClippingBox- und ClippingPlane-Objekten Renderer für untergeordnete Objekte von MarsCuriosityRover hinzu.Follow the same process and add MarsCuriosityRover's child objects renderers to the ClippingBox and ClippingPlane objects.

In diesem Tutorial wird nur das MarsCuriosityRover-Modell verwendet, um das Clippingfeature zu demonstrieren.In this tutorial, only the MarsCuriosityRover model will be used for demonstrating the clipping feature. Es wurden Clippingfeatures zu weiteren Modellen hinzugefügt, die Größe des Renderers wurde vergrößert, und es wurden individuelle Gittermodellrenderer hinzugefügt.They were adding clipping features to more models, increasing the size of the renderer, and adding their individual mesh renderers.

Konfigurieren von Eye-Tracking zum Hervorheben von QuickInfosConfiguring eye-tracking to highlight tooltips

In diesem Abschnitt wird erläutert, wie Sie Eye-Tracking in Ihrem Projekt aktivieren.In this section, you will explore how to enable eye tracking in your project. Beispielsweise implementieren Sie eine Funktionalität zum Hervorheben von QuickInfos, die an die Teile von MarsCuriosityRover angefügt sind, während Sie sich diese ansehen. Sie werden ausgeblendet, wenn Sie sie nicht mehr ansehen.For example, you will implement the functionality to highlight tooltips attached to MarsCuriosityRover's parts while looking at them and hiding them, while you are looking away from them.

1. Identifizieren von Zielobjekten und zugehörigen QuickInfos1. Identify target objects and associated tooltips

Wählen Sie im Hierarchiefenster das ModelParent-Objekt aus.In the Hierarchy window, select the ModelParent object. Erweitern Sie MarsCuriosity > Rover _, um fünf Hauptbestandteile von MarsCuriosityRover zu ermitteln: _ POI-Camera, POI-Wheels, POI-Antena, POI-Spectrometer, POI-RUHF Antenna.Expand the *MarsCuriosity -> Rover_ to find five main parts of the MarsCuriosityRover: _* POI-Camera**, POI-Wheels, POI-Antena, POI-Spectrometer, POI-RUHF Antenna.

  • Beachten Sie die fünf entsprechenden QuickInfo-Objekte, die mit MarsCuriosityRover-Teilen im Hierarchiefenster verknüpft sind.Observe five corresponding tooltip objects associated with MarsCuriosityRover parts in the Hierarchy window.
  • Sie konfigurieren diese Objekte so, dass sie hervorgehoben werden, wenn Sie sich die MarsCuriosityRover-Teile ansehen.You will be configuring these objects to highlight the experience when you look at the MarsCuriosityRover parts.

Unity mit ausgewähltem und erweitertem Rover-Objekt

2. Implementierung von While Looking At Target ()- und On Look Away ()-Ereignissen2. Implement While Looking At Target () & On Look Away () events

Wählen Sie im Hierarchiefenster das *POI-Camera _-Objekt aus.In the Hierarchy window, select the *POI-Camera _ object. Suchen Sie im Inspektor-Fenster nach der Komponente _ Eye Tracking Target (Script) *, und konfigurieren Sie die While Looking At Target () & On Look Away () -Ereignisse wie folgt:In the Inspector window, locate the _ Eye Tracking Target (Script)* component and configure the While Looking At Target () & On Look Away () events as follows:

  • Weisen Sie dem Feld None (Object) das POI-Camera ToolTip-Objekt zu.To None (Object) field, assign the POI-Camera ToolTip object
  • Wählen Sie in der Dropdownliste No Function des While Looking At Target () -Ereignisses GameObject > SetActive (bool) aus.From No Function dropdown of While Looking At Target () event, select GameObject > SetActive (bool). Aktivieren Sie das Kontrollkästchen darunter, um die QuickInfo als Aktion hervorzuheben, die ausgelöst wird, wenn Sie das Zielobjekt betrachten.Select the Checkbox under it to highlight the tooltip as the action that is triggered when you look at the target object.

Unity mit in Bearbeitung befindlicher Konfiguration des EyeTrackingTarget WhileLookingAtTarget-Ereignisses

  • Führen Sie den gleichen Vorgang aus, und klicken Sie auf die Dropdownliste No Function des On Look Away () -Ereignislisteners.Follow the same process and click on the No Function dropdown of the On Look Away () event listener. Wählen Sie dann GameObject > SetActive(bool) aus, und lassen Sie das Kontrollkästchen leer, um die QuickInfo als Aktion auszublenden, die ausgelöst wird, wenn Sie vom Zielobjekt wegschauen.Then select GameObject > SetActive (bool) and leave the Checkbox empty to hide the tooltip as the action that is triggered when you look away from the target object.

Unity mit konfiguriertem EyeTrackingTarget OnLookAway-Ereignis

Führen Sie den gleichen Vorgang aus, und weisen Sie entsprechende QuickInfo-Objekte denselben MarsCuriosityRover-Teilen für While Looking At Target () & On Look Away () -Ereignisse zu.Follow the same process and assign respective tooltip objects to their same MarsCuriosityRover parts While Looking At Target () & On Look Away () events.

Um Eye-Tracking zu aktivieren, befolgen Sie diese Richtlinien.To enable eye tracking, please follow these guidelines.

Herzlichen Glückwunsch!Congratulations

In diesem Tutorial haben Sie gelernt, eine Mixed Reality-Erfahrung zu entwickeln, die Benutzeroberflächenelemente, 3D-Modellbearbeitung, Modellclipping und Funktionen für Eye-Tracking zeigt.In this tutorial, you learned to build a mixed reality experience demonstrating UI elements, 3D model manipulation, model clipping, and eye-tracking features. In diesem Tutorial wurden NextButton und PreviousButton vorgestellt, mit denen Sie die Erfahrung des 3D-Modellbetrachters untersuchen können.The tutorial provided you with NextButton and PreviousButton that let you explore the 3D model viewer experience. Mit ClippingObjectButton haben Sie die Möglichkeit, Clippingobjekte zu aktivieren und das Clippingfeature zu erleben.The ClippingObjectButton made you turn on clipping objects and experience clipping feature. Das Tutorial hat Ihnen auch ein Element für Eye-Tracking vorgestellt, mit dem Sie die QuickInfos in der Darstellung hervorheben können.The tutorial also provided you with an eye-tracking element to enable highlighting the tooltips in the experience.

In der nächsten Lektion erfahren Sie, wie Sie eine Anwendung für Holographic Remoting für den PC erstellen, um HoloLens 2 zu einem beliebigen Zeitpunkt zu verbinden. Auf diese Weise können Sie 3D-Inhalte in Mixed Reality visualisieren.In the next lesson, you will learn how to create a Holographic Remoting application for PC to connect HoloLens 2 at any point, providing a way to Visualize 3D content in mixed reality.