MRTK-Komponenten und skriptfähige Unity-Objekte

Abgeschlossen

MRTK-Unity ist ein von Microsoft vorangetriebenes Projekt, das einen Satz von Komponenten und Funktionen bereitstellt, die zum Beschleunigen der Entwicklung von plattformübergreifenden MR-Apps in Unity dienen. Sie verwenden das MRTK, um schnell immersive Interaktionen mit dem 3D-Modell der Windkraftanlage in Ihrer Szene zu erstellen. In diesem Projekt verwenden wir insbesondere die folgenden MRTK-Objektklassen im Namespace Microsoft.MixedReality.Toolkit.UI:

  • ObjectManipulator: Das ObjectManipulator Skript wird ein Objekt mit einer oder beiden Händen beweglich, skalierbar und drehbar. Das Skript funktioniert sowohl mit der HoloLens-Gesteneingabe als auch mit der Eingabe über den Motion-Controller des immersiven Headsets.

  • BoundsControl: Mit BoundsControl können Sie Objekte transformieren (Rotieren und Skalieren). Außerdem wird ein Würfel um das Objekt gezeichnet, um die mögliche vom Benutzer verursachte Transformation zu visualisieren. BoundsControl bietet Ziehpunkte zum Skalieren und Rotieren, die Sie für die Nah- und Fernbearbeitung des Objekts verwenden können. Darüber hinaus wird ein Näherungseffekt für die Skalierungs- und Rotationsziehpunkte bereitgestellt, der die Skalierung und das Material ändert.

  • NearInteractionGrabbable: Sie können die Komponenten „NearInteractionGrabbable“ zu jedem GameObject hinzufügen, das über ein Collidable-Attribut verfügt, wodurch das kollisionsfähige Objekt in der Nähe greifbar wird. Alle IMixedRealityNearPointer geben dann Zeigerereignisse an die nächstgelegenen Objekte aus, die in der Nähe greifbar sind. Außerdem sendet der Zeiger Ereignisse zum Starten und Beenden des Fokus, wenn das dekorierte Objekt das dem Zeiger nächstgelegene Objekt ist.

  • RotationAxisConstraint: Mit dieser Objektklasse kann die Windkraftanlage so eingeschränkt werden, dass sie nur nach der Y-Achse (nach oben) rotiert.

    Screenshot: Unity-Szenenfenster mit dem Windkraftanlagen-Prefab, das im Inspektorbereich ausgewählt ist

Windkraftanlagen-Prefabs

Jedes Windkraftanlagen-Prefab für den digitalen Zwilling verfügt über ein entsprechendes ScriptableObject-Objekt im Unity-Projekt, das von Microsoft Azure empfangene Daten speichert. ScriptableObjects sind im Grunde einfache Objekte, die Daten global in Szenen und Anwendungsausführungen speichern können. Das Windkraftanlagen-Prefab umfasst einen Verweis auf dieses ScriptableObject, und ein Ereignis wird ausgelöst, um das Objekt zu benachrichtigen, wenn die Daten geändert wurden. Sehen Sie sich die folgenden Prefabs an, um zu sehen, welche MRTK-Komponenten enthalten sind und wo die Azure-Daten empfangen werden:

  1. Navigieren Sie zu Assets > Art > Prefabs (Objekte > Grafik > Prefabs), um den digitalen Zwilling für die Windkraftanlage anzuzeigen. Im Inspektor für die Windkraftanlage können Sie sehen, dass eine LOD-Gruppe, die zuvor beschriebenen MRTK-Komponenten und andere Skripts an dieses Prefab-Objekt angefügt sind.

    Screenshot: Unity-Szenenfenster mit dem skriptfähigen Windkraftanlagen-Objekt in der Ansicht und im Inspektor

  2. Sie finden entsprechende skriptfähige Objekte für die Windkraftanlagen unter Objekte > Scriptable Objects (Skriptfähige Objekte)> Turbine Site Data (Windkraftanlagen-Daten).

    Screenshot: Unity-Szenenfenster mit den skriptfähigen Windkraftanlagen-Objekten in der Ansicht