Übung: Hinzufügen von Handinteraktionsskripts zu einem Objekt
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
Wählen Sie in der Menüleiste GameObject>3D-Objekt>Cube aus.
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.
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.
Ändern Sie im Inspector die Werte des Cubes für Transformieren/Position wie folgt:
X = -0,2; Y = 1,6; Z = 0,5
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.
Ändern Sie in Prüfung die Werte für Tranformieren/Rotation des Cubes wie folgt:
X = 9, Y = 14, Z = 0 f
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 zwei 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
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.
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.
Aktualisieren des Cubematerials
Aus Leistungsgründen empfehlen wir die Verwendung von MRTK-Materialien anstelle der Standardmaterialien von Unity.
- Während der Cube noch ausgewählt ist, suchen Sie den Abschnitt Materials in der Komponente „Mesh Renderer“.
- Ersetzen Sie das Standardmaterial durch das Material MRTK_Standard_White unter MRTK Standard Assets>Materials. Sie können das Material aus dem Bereich Project im Abschnitt Materials ziehen und ablegen.
Hinzufügen eines zweiten Cubes
Klicken Sie in der Hierarchie mit der rechten Maustaste auf den Cube und wählen Sie Duplizieren aus. Der duplizierte Cube wird mit dem Namen Cube (1) angezeigt.
Klicken Sie mit der rechten Maustaste auf den ursprünglichen Cube, wählen Sie Umbenennen aus, und nennen Sie den Cube Near Cube.
Klicken Sie mit der rechten Maustaste auf den duplizierten Cube, wählen Sie Umbenennen aus, und nennen Sie den Cube 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“.
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.
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
Wählen Sie die Schaltfläche Wiedergeben aus. Wenn das Projekt mit der Wiedergabe beginnt, wechselt die Ansicht zum Fenster Spiel.
Hinweis
Vergewissern Sie sich vor der Wiedergabe, dass ein gültiges Profil unter Projekteinstellungen>MRTK3 festgelegt ist.
Wählen Sie die Schaltfläche mit den drei Punkten in der oberen rechten Ecke des Fensters Game und dann Maximierenaus.
Drücken Sie die LEERTASTE, damit die simulierte rechte Hand in der Ansicht angezeigt wird.
Verschieben Sie die simulierte Hand näher an „Near Cube“, bis sie den Cube an der Seite oder unten berührt.
Klicken Sie mit der linken Maustaste (die Hand „greift“ damit nach dem Cube), und ziehen Sie den Cube dann in der Szene.
Um nach „Far Cube“ zu greifen und ihn zu verschieben, verwenden wir den Fernzeiger, der an die simulierte Hand angefügt ist.
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.
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.
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 Qund 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 LEERTASTE + STRG (rechte Hand) oder 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
Minimieren Sie das Wiedergabefenster, indem Sie die Schaltfläche mit den drei Punkten auswählen und dann das Kontrollkästchen Maximieren deaktivieren.
Klicken Sie in der Menüleiste auf Datei>Buildeinstellungen.
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.
Wählen Sie die Schaltfläche Build aus.
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.
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 Sie auf HoloLens.com erwerben.
Nach Abschluss des Buildprozesses wird der Datei-Explorer von Windows geöffnet und der Buildordner angezeigt. Öffnen Sie den Ordner, und doppelklicken Sie auf die Projektmappendatei, um sie in Visual Studio zu öffnen.
Konfigurieren Sie Visual Studio für HoloLens, indem Sie die Master- oder Releasekonfiguration und die ARM64-Architektur auswählen:
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 im Projektmappen-Explorer mit der rechten Maustaste auf [Ihr Projektname](Universal Windows), und wählen Sie Als Startprojekt festlegen aus.
Wichtig
Vor dem Erstellen auf Ihrem Gerät muss sich das Gerät im Entwicklermodus befinden und mit Ihrem Entwicklungscomputer gekoppelt werden. Siehe Aktivieren des Entwicklermodus.
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.
- Wenn Sie über USB erstellen und bereitstellen, wählen Sie Gerät aus.
Festlegen der Remoteverbindung: Wählen Sie in der Menüleiste Projekt > Eigenschaften aus.
Wählen Sie im Fenster Eigenschaftenseiten des Projekts die Option Konfigurationseigenschaften > Debuggen aus.
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.
Geben Sie im Feld Computername die IP-Adresse Ihres Geräts ein.
Legen Sie den Authentifizierungsmodus auf Universell (Unverschlüsseltes Protokoll) fest.
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.
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:
- Navigieren Sie in HoloLens zu Einstellungen > Updates und Sicherheit > Für Entwickler.
- Wählen Sie Pair (Pairing durchführen) aus. Dadurch wird die PIN in HoloLens angezeigt.
- Geben Sie die PIN in das Dialogfeld in Visual Studio ein.
- Wählen Sie nach Abschluss der Kopplung in HoloLens Fertig aus.
Ihr PC ist nun mit 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
Nachdem die App erstellt wurde, suchen Sie im HoloLens-Startmenü nach der App-Kachel für Ihre App, und wählen Sie diese aus.
Nachdem die App gestartet wurde, greifen Sie nach „Near Cube“ und ziehen ihn.
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.