Übung – Hinzufügen von Handinteraktionen mit objectmanipulator

Abgeschlossen

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

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

    Screenshot: Menübefehle zum Hinzufügen des Cubes

    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.

  2. 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.

  3. Ändern Sie im Inspektor die Positionswerte des Cubes im Abschnitt "Transformieren " wie folgt:

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

    Screenshot: Die Transformationskomponente des Cubes nach Updates

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

  4. Ä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)
  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: Hinzufügen des Skripts „Object manipulator“ (Objektmanipulator)

    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.

    Screenshot: Das Skript „Constraint Manager“ (Einschränkungs-Manager), das dem Cube hinzugefügt wurde

Aktualisieren des Cubematerials

Aus Leistungsgründen empfehlen wir die Verwendung von MRTK-Materialien anstelle der Standardmaterialien von Unity.

  1. Wenn der Cube weiterhin ausgewählt ist, suchen und erweitern Sie den Abschnitt Materialien der Komponente „Mesh Renderer“.
  2. 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

  1. 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.

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

  3. 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“.

  4. 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.

    Screenshot: Die Ansicht „Main Camera“ (Hauptkamera) im Fenster „Scene“ (Szene)

    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

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

    Screenshot: Das Fenster „Game“ (Spiel) nach Aufrufen des Wiedergabemodus

    Hinweis

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

  2. Wählen Sie die Schaltfläche mit drei Punkten oberhalb der oberen rechten Ecke des Spielfensters aus, und wählen Sie dann "Maximieren" aus.

    Screenshot: Der Befehl „Maximize“ (Maximieren) für das Fenster „Game“ (Spiel)

  3. Halten Sie die Leertaste gedrückt, damit die simulierte rechte Hand in der Ansicht angezeigt wird.

  4. Bewegen Sie die simulierte Hand näher an den Near Cube, bis sie den Würfel auf der Seite oder unten berührt.

    Screenshot: Die simulierte rechte Hand, die den Cube mit dem Namen „Near Cube“ berührt

  5. Klicken Sie auf die linke Maustaste (dadurch "greift" die Hand den Würfel), und ziehen Sie dann den Würfel in der Szene herum.

    Screenshot vom Verschieben des Würfels

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

  6. 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.

    Screenshot: Der Fernzeiger der simulierten Hand

  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: Der Fernzeiger, der den Cube berührt

  8. 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.