Übung: Hinzufügen von Handinteraktionsskripts zu einem Objekt

Abgeschlossen

Das ObjectManipulator-Skript unterstützen die Modalität „direkte Manipulation“ des Eingabemodells „Hand- und Bewegungscontroller“. Wenn das Skript an ein Objekt angefügt wird, kann der Benutzer das Objekt mit den Händen verschieben, es skalieren oder drehen. In dieser Übung erstellen Sie zwei Cubes, fügen die erforderlichen Skripts an und verschieben die Cubes anschließend.

Hinzufügen und Anpassen des ersten Cubes

  1. Wählen Sie in der Menüleiste GameObject>3D-Objekt>Cube aus.

    Screenshot of menu commands for adding the cube.

    Die Standardgröße des Cubes ist ein Quadratmeter. Dies ist für unsere Zwecke zu groß. Wir skalieren die Größe auf 20 x 20 x 20 cm herunter.

  2. Wählen Sie den Cube aus, und ändern Sie dann im Inspector die Werte des Cubes für Transformieren/Skalieren wie folgt:

    X = 0,2, Y = 0,2, Z = 0,2

    Der Cube wurde in der Szene an der Standardposition (0,0,0) platziert. Dies bedeutet, dass sich der Cube an der gleichen Position wie das Headset des Benutzers befindet und der Benutzer den Cube erst sehen kann, wenn er sich nach hinten bewegt. Wir ändern die Positionswerte des Cubes, damit er besser sichtbar wird.

  3. Ändern Sie im Inspector die Werte des Cubes für Transformieren/Position wie folgt:

    X = -0,2; Y = 1,6; Z = 0,5

    Screenshot of the cube's transform component after updates.

    Wir möchten in der Lage sein, drei Seiten des Cubes zu sehen, daher ändern wir auch die Rotation des Cubes.

    Hinweis

    Die Höhe des Cubes ist auf 1,6 festgelegt, um der Höhe des Kameraoffsets auf dem MRTK XR Rig zu entsprechen und ihn ungefähr auf Augenhöhe zu platzieren.

  4. Ändern Sie in Prüfung die Werte für Tranformieren/Rotation des Cubes wie folgt:

    X = 9, Y = 14, Z = 0

    Tipp

    Um den Cube zu vergrößern, wählen Sie ihn aus, stellen Sie sicher, dass der Cursor auf das Fenster Szene zeigt, und drücken Sie dann die Taste F. Sie können jedes Objekt auf diese Weise vergrößern.

Hinzufügen der Skripts zum Cube

Damit ein Objekt mit bewegten Händen „gegriffen“ werden kann, müssen drei Komponenten angefügt sein:

  • Eine Collider-Komponente (Sie müssen hier nichts tun – im Cube von Unity ist standardmäßig bereits ein Box Collider angefügt)
  • Object Manipulator (Script) -Komponente
  1. Während der Cube noch ausgewählt ist, wählen Sie im Fenster Inspector die Schaltfläche Komponente hinzufügen aus, suchen Sie nach dem Skript Object Manipulator, und wählen Sie es aus.

    Screenshot of adding the Object Manipulator script.

    Durch das ObjectManipulator-Skript wird ein Objekt mit einer oder zwei Händen verschiebbar, skalierbar und drehbar. Wenn Sie das Skript „Object Manipulator“ hinzufügen, wird auch das Constraint Manager-Skript automatisch hinzugefügt, da das Object Manipulator-Skript davon abhängig ist.

    Screenshot of the Constraint Manager script added to the cube.

Aktualisieren des Cubematerials

Aus Leistungsgründen wird empfohlen, MRTK-Materialien anstelle der Unity-Standardmaterialien zu verwenden.

  1. Während der Cube noch ausgewählt ist, suchen Sie den Abschnitt „Materials“ in der Komponente „Mesh Renderer“.
  2. Ersetzen Sie das Standardmaterial durch das Material MRTK_Standard_White unter MRTK Standard Assets>Materials.

Hinzufügen eines zweiten Cubes

  1. Klicken Sie in der Hierarchie mit der rechten Maustaste auf den Cube, und wählen Sie dann Duplizieren aus. Der duplizierte Cube wird mit dem Namen „Cube (1)“ angezeigt.

  2. Klicken Sie mit der rechten Maustaste auf den ursprünglichen Cube, wählen Sie Umbenennen aus, und nennen Sie den Cube dann „Near Cube“.

  3. Klicken Sie mit der rechten Maustaste auf den duplizierten Cube, wählen Sie Umbenennen aus, und nennen Sie den Cube dann „Far Cube“.

    Derzeit sieht es so aus, als wäre nur ein Cube in der Ansicht Szene vorhanden. Das liegt daran, dass sich „Near Cube“ und „Far Cube“ genau an derselben Stelle befinden. Ändern wir nun die Position und Rotation von „Far Cube“.

  4. Während „Far Cube“ noch ausgewählt ist, ändern Sie seine Werte in der Transformationskomponente wie folgt:

    Position: X = 0,6; Y = 1,6; Z = 1,1

    Rotation: X = 27, Y = 0, Z = 0

    Nun sollte die Kamera „Near Cube“ auf der linken Seite und „Far Cube“ ein wenig weiter rechts anzeigen. Um dies zu bestätigen, wählen Sie unter Hierarchy die Option Main Camera aus (unter MRTK XR Rig>Camera Offset), und sehen Sie sich dann das Fenster Main Camera im Fenster Scene an.

    Screenshot of the Main Camera view in the Scene window.

    Tipp

    Wenn die Ansicht im Fenster Szene eher das zeigen soll, was die Kamera sieht, scrollen Sie im Fenster Szene. Möglicherweise müssen Sie „Clear Flags“ der Kamera auf „Skybox“ festlegen, wenn dies nicht standardmäßig eingestellt ist.

Greifen und Verschieben der Cubes im Wiedergabemodus

  1. Wählen Sie die Schaltfläche „Wiedergeben“ aus. Wenn das Projekt mit der Wiedergabe beginnt, wechselt die Ansicht zum Fenster Spiel.

    Screenshot of the Game window after entering Play mode.

    Hinweis

    Vergewissern Sie sich vor der Wiedergabe, dass unter Project Settings>MRTK3 ein gültiges Profil festgelegt ist.

  2. Klicken Sie oben rechts im Fenster Spiel auf die Schaltfläche mit den Auslassungspunkten, und wählen Sie dann Maximieren aus.

    Screenshot of Maximize command for the Game window.

  3. Drücken Sie die LEERTASTE, damit die simulierte rechte Hand in der Ansicht angezeigt wird.

  4. Verschieben Sie die simulierte Hand näher an „Near Cube“, bis sie den Cube an der Seite oder unten berührt.

    Screenshot of the simulated right hand touching the Near Cube.

  5. Klicken Sie mit der linken Maustaste (die Hand „greift“ damit nach dem Cube), und ziehen Sie den Cube dann in der Szene.

    Screenshot of Move the cube.

    Um nach „Far Cube“ zu greifen und ihn zu verschieben, verwenden wir den Fernzeiger, der an die simulierte Hand angefügt ist.

  6. Drücken Sie erneut die LEERTASTE, wenn erforderlich, damit die simulierte rechte Hand angezeigt wird. Beachten Sie den Fernzeiger, der sich vom Ende des Zeigefingers der Hand erstreckt.

    Screenshot of simulated hand's far pointer.

  7. Bewegen Sie die Hand näher an „Far Cube“, bis die Spitze des Zeigers auf dem Cube angezeigt wird. Möglicherweise müssen Sie die Hand mehrmals in einer kreisförmigen Bewegung bewegen, damit die Spitze des Zeigers auf dem Cube angezeigt wird.

    Screenshot of the far pointer touching the cube.

  8. Klicken Sie mit der linken Maustaste (dadurch schließt sich die Hand, was wir als „Kneifbewegung“ bezeichnen), und ziehen Sie dann den Cube in der Szene.

In-Editor-Eingabesimulation in Unity

Sie können das Verhalten holografischer Objekte mit den in den Editor integrierten Eingabesimulationsfeatures von Unity testen.

Ändern der Ansicht in der Szene

  • Verwenden Sie die Tasten W/A/S/D, um die Kamera nach vorn/links/zurück/rechts zu bewegen.
  • Um die Kamera vertikal zu bewegen, drücken Sie die Tasten Q und E.
  • Um die Kamera zu drehen, drücken Sie die rechte Maustaste, und ziehen Sie dann.

Simulieren der Handeingabe

  • Um die simulierte rechte Hand zu aktivieren, halten Sie die LEERTASTE gedrückt. Um die Hand zu entfernen, lassen Sie die LEERTASTE los.
  • Halten Sie die linke UMSCHALTTASTE gedrückt, um die simulierte linke Hand zu aktivieren. Um die Hand zu entfernen, lassen Sie die LEERTASTE los.
  • Um die Hände in der Szene zu bewegen, bewegen Sie die Maus.
  • Drehen Sie das Mausrad, um die Hand vorwärts oder rückwärts zu bewegen.
  • Klicken Sie mit der linken Maustaste, um die Kneifbewegung zu simulieren.
  • Um die Hand zu drehen, halten Sie die LEERTASTE+STRG (rechte Hand) oder die LINKE UMSCHALTTASTE+STRG (linke Hand) gedrückt, und bewegen Sie dann die Maus.

Beständige Hände

  • Um eine Hand zu aktivieren und sie auf dem Bildschirm zu belassen, ohne eine Taste gedrückt halten zu müssen, drücken Sie T (linke Hand) oder Y (rechte Hand). Drücken Sie diese Tasten erneut, um die Hände zu entfernen.

Erstellen der Anwendung in Unity

  1. Klicken Sie in der Menüleiste auf Datei>Buildeinstellungen.

  2. Wählen Sie im Dialogfeld Buildeinstellungen die Schaltfläche Geöffnete Szenen hinzufügen aus, um Ihre aktuelle Szene der Liste Szenen im Build hinzuzufügen.

  3. Wählen Sie die Schaltfläche Build aus.

  4. Navigieren Sie im Fenster Universelle Windows-Plattform erstellen zu dem Ordner, in dem Sie Ihren Build speichern möchten, oder erstellen Sie einen neuen Ordner, und navigieren Sie zu ihm, und wählen Sie dann die Schaltfläche Ordner auswählen aus, um den Buildprozess zu starten.

    Screenshot of the location to save your build.

    Eine Statusleiste zeigt an, wie der Buildprozess fortschreitet.

(Optional) Erstellen und Bereitstellen der Anwendung

Hinweis

Das Erstellen und Testen von Anwendungen auf HoloLens 2 ist nicht obligatorisch. Alternativ können Sie Tests mit dem HoloLens 2-Emulator ausführen, wenn Sie über kein Gerät verfügen. Geräte können unter HoloLens.com erworben werden.

  1. Nach Abschluss des Buildprozesses wird der Datei-Explorer von Windows geöffnet und der Buildordner angezeigt. Öffnen Sie den Ordner, und doppelklicken Sie dann auf die Projektmappendatei, um sie in Visual Studio zu öffnen:

    Screenshot of File Explorer with the builds folder displayed.

  2. Konfigurieren Sie Visual Studio für HoloLens, indem Sie die Master- oder Releasekonfiguration und die ARM64-Architektur auswählen:

    Screenshot of Visual Studio window with the build options for the project.

    Tipp

    Wenn Sie auf HoloLens (1. Generation) bereitstellen, wählen Sie die x86-Architektur aus.

    Hinweis

    Wenn „Gerät“ nicht als Zieloption in Visual Studio angezeigt wird, müssen Sie möglicherweise das Startprojekt für die Projektmappe vom IL2CPP-Projekt in das UWP-Projekt ändern. Klicken Sie hierzu im Projektmappen-Explorer mit der rechten Maustaste auf [Ihr Projektname](Universelles Windows), und wählen Sie dann Als Startprojekt festlegen aus.

    Wichtig

    Bevor Sie den Build für Ihr Gerät erstellen, muss das Gerät in den Entwicklermodus versetzt und mit Ihrem Entwicklungscomputer gekoppelt werden. Weitere Informationen finden Sie im Abschnitt „Aktivieren des Entwicklermodus“ auf dieser Seite.

  3. Wählen Sie die Dropdownliste für das Bereitstellungsziel aus, und führen Sie dann eine der folgenden Aktionen aus:

    • Wenn Sie über WLAN erstellen und bereitstellen, wählen Sie Remotecomputer aus.

    Screenshot of Visual Studio window with Remote Machine as the target.

    • Wenn Sie über USB erstellen und bereitstellen, wählen Sie Gerät aus.

    Screenshot of Visual Studio window with Device as the target.

  4. Festlegen der Remoteverbindung: Wählen Sie in der Menüleiste Projekt > Eigenschaften aus.

  5. Wählen Sie im Fenster Eigenschaftenseiten des Projekts die Option Konfigurationseigenschaften > Debuggen aus.

  6. Wählen Sie in der Dropdownliste Zu startender Debugger und dann Remotecomputer aus, wenn diese Option nicht bereits ausgewählt ist.

    Wichtig

    Wir empfehlen, die IP-Adresse manuell einzugeben, statt sich auf die Funktion zur automatischen Erkennung zu verlassen. Um Ihre IP-Adresse zu finden, navigieren Sie in HoloLens zu Einstellungen > Updates und Sicherheit > Für Entwickler. Die IP-Adresse wird unten im Fenster unter Ethernet aufgeführt.

  7. Geben Sie im Feld Computername die IP-Adresse Ihres Geräts ein.

    Remote connection dialog in Visual Studio

  8. Legen Sie den Authentifizierungsmodus auf Universell (Unverschlüsseltes Protokoll) fest.

  9. Verbinden Sie HoloLens mit Ihrem Computer, und führen Sie dann in Visual Studio eine der folgenden Aktionen aus:

    • Um die App für HoloLens bereitzustellen und automatisch zu starten, ohne dass der Visual Studio-Debugger angefügt ist, wählen Sie Debuggen>Ohne Debuggen starten aus.
    • Um die App für HoloLens bereitzustellen, ohne sie automatisch zu starten, wählen Sie Erstellen>Lösung bereitstellen aus.

    Screenshot of Visual Studio with the Start Without Debugging menu item displayed.

Koppeln Ihres Geräts

Beim erstmaligen Bereitstellen einer App in Ihrer HoloLens von Ihrem Computer aus werden Sie zur Eingabe einer PIN aufgefordert. So erstellen Sie eine PIN:

  1. Navigieren Sie in HoloLens zu Einstellungen > Updates und Sicherheit > Für Entwickler.
  2. Wählen Sie Pair (Pairing durchführen) aus. Dadurch wird die PIN in HoloLens angezeigt.
  3. Geben Sie die PIN in das Dialogfeld in Visual Studio ein.
  4. Wählen Sie nach Abschluss des Pairings in HoloLens Fertig aus.

Ihr PC ist nun mit der HoloLens verbunden, und Sie können Apps automatisch bereitstellen. Wiederholen Sie diese Schritte für jeden PC, der zum Bereitstellen von Apps auf Ihrer HoloLens verwendet wird.

Ausführen Ihrer App in HoloLens

  1. Nachdem die App erstellt wurde, suchen Sie im HoloLens-Startmenü nach der App-Kachel für Ihre App, und wählen Sie diese aus.

  2. Nachdem die App gestartet wurde, greifen Sie nach „Near Cube“ und ziehen ihn.

  3. Verwenden Sie den Fernzeiger, um nach „Far Cube“ zu greifen, und ziehen Sie ihn dann.

    Tipp

    HoloLens bietet Ihnen mehr Flexibilität als das Testen Ihrer App in Unity. Sie können sich physisch bewegen und den Fernzeiger für „Near Cube“ verwenden oder nach „Far Cube“ mit der Hand greifen!

Tipps

  • Sie können auch auf dem HoloLens Emulator bereitstellen oder ein App-Paket zum Querladen erstellen.

  • Möglicherweise bemerken Sie den Diagnoseprofiler in der App. Sie können ihn mit dem Sprachbefehl „Diagnose umschalten“ ein- oder ausschalten. Es empfiehlt sich, den Profiler während der Entwicklung die meiste Zeit anzuzeigen, damit Sie sehen, wie Änderungen an der App die Leistung beeinträchtigen können. Beispielsweise können Sie Ihre App überwachen, um sicherzustellen, dass die Bildfrequenz mindestens 60 Bilder pro Sekunde beträgt.