Übung – Hinzufügen von Handinteraktionen mit objectmanipulator
Das ObjectManipulator-Skript unterstützt die direkte Manipulationsmodalität des Eingabemodells der Hände und Bewegungscontroller. Wenn das Skript an ein Objekt angefügt ist, kann der Benutzer das Objekt mit seinen Händen verschieben, 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 Würfels ist ein Kubikmeter, der zu groß für unsere Zwecke ist. Die Größe wird auf 20 Kubikzentimeter herunterskaliert.
Wählen Sie den Cube aus, und ändern Sie dann im Inspektor die Skalierungswerte des Cubes im Abschnitt "Transformieren " 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 Inspektor die Positionswerte des Cubes im Abschnitt "Transformieren " 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.
Ändern Sie im Inspektor die Drehungswerte des Cubes im Abschnitt "Transformieren " wie folgt:
X = 9, Y = 14, Z = 0
Tipp
Um den Würfel zu vergrößern, wählen Sie ihn aus, stellen Sie sicher, dass der Cursor auf das Szenenfenster zeigt, und drücken Sie 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)
- Objektmanipulationskomponente (Skript)
- Einschränkungs-Manager -Komponente (Skript)
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.
Das Objektmanipulationsskript macht ein Objekt mit einer oder zwei Händen verschiebbar, skalierbar und drehend. 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.
- Wenn der Cube weiterhin ausgewählt ist, suchen und erweitern Sie den Abschnitt Materialien der Komponente „Mesh Renderer“.
- Ersetzen Sie das Standardmaterial durch das Material MRTK_Standard_White unter MRTK Standard Assets>Materials. Dazu ziehen Sie das Material direkt in das Feld "Element " im Abschnitt "Materialien "
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 benennen Sie dann 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“.
Wenn Far Cube weiterhin ausgewählt ist, ändern Sie die Werte in der Transformationskomponente wie folgt:
Position: X = 0,6, Y = 1,6, Z = 1,1
Drehung: X = 27, Y = 0, Z = 0
Nun sollte die Kamera den Near Cube links und den Far Cube ein wenig weiter entfernt auf der rechten Seite sehen. Um dies zu bestätigen, wählen Sie in der Hierarchie die Hauptkamera (unter MRTK XR Rig>Camera Offset) aus, und sehen Sie sich dann das Hauptkamerafenster im Szenenfenster 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 die Clear Flags der Kamera auf Skybox festlegen, wenn sie nicht standardmäßig vorhanden 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 unter Project Settings>MRTK3 ein gültiges Profil festgelegt ist.
Wählen Sie die Schaltfläche mit drei Punkten oberhalb der oberen rechten Ecke des Spielfensters aus, und wählen Sie dann "Maximieren" aus.
Halten Sie die Leertaste gedrückt, damit die simulierte rechte Hand in der Ansicht angezeigt wird.
Bewegen Sie die simulierte Hand näher an den Near Cube, bis sie den Würfel auf der Seite oder unten berührt.
Klicken Sie auf die linke Maustaste (dadurch "greift" die Hand den Würfel), und ziehen Sie dann den Würfel in der Szene herum.
Um nach „Far Cube“ zu greifen und ihn zu verschieben, verwenden wir den Fernzeiger, der an die simulierte Hand angefügt ist.
Wenn Sie möchten, halten Sie die Leertaste erneut gedrückt, um die simulierte rechte Hand anzuzeigen. 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 auf die linke Maustaste (damit wird die Hand geschlossen, was wir als "Zusammendrückbewegung" bezeichnen), und ziehen Sie dann den Würfel durch die Szene.