So erstellen Sie Ihre erste HoloLens-App mit Unity

Microsofts HoloLens ist ziemlich verdammt großartig. Ich habe es diesen Sommer bei meinem Praktikum kennengelernt und es hat mir sehr viel Spaß gemacht, mich dafür zu entwickeln.

HoloLens-Apps werden entweder mit DirectX mit C ++ oder Unity mit C # erstellt. Ich habe festgestellt, dass es im Allgemeinen schneller und einfacher ist, eine App mit Unity zum Laufen zu bringen.

In diesem Artikel richten wir die Entwicklung von Unity für HoloLens ein, erstellen einen interaktiven Cube und drehen den HoloLens-Emulator hoch, damit Sie Ihre Erstellung sehen können. Dieser Artikel richtet sich an Anfänger von Unity. Wenn Sie also Erfahrung mit dem Editor haben, empfehlen wir Ihnen, die Tutorials von Microsoft durchzugehen.

Voraussetzungen

  1. Ein Windows 10-PC mit dem Update vom April 2018
  2. Der HoloLens Emulator, den Sie hier herunterladen können
  3. Visual Studio 2017 - Community Edition ist in Ordnung
  4. Einheit - Stellen Sie sicher, dass Sie während der Installation die Windows .NET-Skript-Backend-Komponente hinzufügen
  5. Das HoloToolKit

Den vollständigen Quellcode finden Sie hier.

Installieren

Öffne die Einheit. Wenn Sie den Editor zum ersten Mal verwenden, werden Sie aufgefordert, sich anzumelden oder anzumelden. Ich würde Unity Personal empfehlen, es sei denn, Sie planen, Ihre App zu monetarisieren.

Nachdem Sie sich angemeldet haben, erstellen Sie ein neues Projekt und geben Sie einen Namen ein. Sie sollten mit diesem Bildschirm begrüßt werden, nachdem das Projekt die Ersteinrichtung abgeschlossen hat.

Klicken Sie mit der rechten Maustaste auf den Ordner "Assets" in der unteren linken Ecke. Navigieren Sie zu Paket importieren -> Benutzerdefiniertes Paket und öffnen Sie die zuvor heruntergeladene HoloToolKit-Einheitendatei. Ein Unity-Popup wird angezeigt. Klicken Sie auf Alle und importieren Sie die Assets.

Als nächstes erstellen wir unsere Szene. Wählen Sie Datei -> Neue Szene und speichern Sie sie als Main.

Unity benötigt eine spezielle Konfiguration, um ein Projekt für HoloLens zu erstellen. Glücklicherweise verfügt das HoloToolKit über Dienstprogramm-Skripte, die diese Konfiguration für uns übernehmen. Wählen Sie in der oberen Symbolleiste Mixed Reality Toolkit -> Konfigurieren -> Mixed Reality-Projekteinstellungen anwenden. Verwenden Sie die Standardwerte. Wenden Sie nach Abschluss der Konfiguration die Einstellungen für die Mixed Reality-Szene an. Löschen Sie das Directional Light GameObject.

Genial! Bisher haben wir das HoloToolKit importiert und Unity für die HoloLens-Entwicklung eingerichtet. Im nächsten Abschnitt werde ich Ihnen die Grundlagen von Unity vorstellen. Danach erhalten Sie einen Würfel, den Sie auf dem Bildschirm rendern können.

Machen Sie sich mit dem Editor vertraut

So sollte der Editor an dieser Stelle aussehen. Beachten Sie die drei eingepackten Bereiche:

Der rote Bereich links ist das Szenenhierarchiefenster. Hier können wir neue GameObjects hinzufügen und einen allgemeinen Überblick über die aktuelle Anwendung erhalten.Ein GameObject ist eine Basisklasse für alle Unity-Entitäten. Sie können ein physisches Objekt wie ein Würfel oder eine Sammlung von Skripten wie der Eingabemanager in der Szene sein.

Der untere blaue Bereich enthält das Assets-Menü und die Konsole. Das Assets-Menü ist genau das, wonach es sich anhört - es enthält die C # -Skripte, Materialien, Fertighäuser und Netze, die zum Ausführen Ihrer App erforderlich sind.

Der rechte grüne Bereich ist das Inspektormenü. Hier können Sie die Komponenten Ihrer GameObjects hinzufügen und ändern . Komponenten bestimmen das Verhalten Ihrer GameObjects. Sie bestimmen das Aussehen, die Interaktivität und die Physik ihrer Eltern.

Einen Würfel erstellen

Jetzt wird unser erstes GameObject auf dem Bildschirm gerendert. Klicken Sie im Szenenhierarchiefenster mit der rechten Maustaste und wählen Sie 3D-Objekt -> Würfel. Im Editor sollte ein Würfel angezeigt werden.

Doppelklicken Sie im Bereich Hierarchie auf Würfel, und ändern Sie im rechten Inspektorfenster die Position in (0,0,2). Stellen Sie die Skala auf (.25, .25, .25). Ihr Inspektorpanel sollte folgendermaßen aussehen:

Nett! Lassen Sie uns die Build-Schritte durchgehen, damit wir unseren Cube im HoloLens-Emulator sehen können.

Wählen Sie in Unity Datei-> Build-Einstellungen. Das Build-Popup sollte angezeigt werden, klicken Sie also auf die Build-Schaltfläche. Erstellen Sie im Ordner-Popup einen neuen Ordner mit dem Namen App und wählen Sie ihn als Erstellungsziel aus.

Öffnen Sie nach Abschluss des Builds die Visual Studio-Lösung im App-Ordner. Ändern Sie die Debug-Optionen in Release, x86, und zielen Sie auf den HoloLens-Emulator ab. Ihre Optionsleiste sollte folgendermaßen aussehen:

Führen Sie die Lösung aus. Nachdem der Emulator gestartet und Ihre Anwendung geladen wurde, sollte Ihr Cube auf dem Bildschirm angezeigt werden.

Den Würfel interaktiv machen

Nachdem wir herausgefunden haben, wie ein Würfel in unsere Anwendung aufgenommen werden kann, lassen wir den Würfel tatsächlich etwas tun. Wenn wir auf den Würfel schauen, dreht er sich und wenn wir auf den Würfel klicken, vergrößert er sich.

Navigieren Sie zurück zu Unity und erstellen Sie im Assets-Bereich ein neues Skript mit dem Namen InteractiveCube. Um ein neues Skript zu erstellen, klicken Sie mit der rechten Maustaste auf das Assets-Bedienfeld und wählen Sie Erstellen -> C # -Skript.

Um das Skript zum Cube hinzuzufügen, stellen Sie sicher, dass der Cube ausgewählt ist, und ziehen Sie das Skript per Drag & Drop auf das Inspektorfenster. Es sollte so aussehen:

Doppelklicken Sie auf der Registerkarte "Assets" auf das Skript, und eine Visual Studio-Instanz sollte angezeigt werden.

Importieren Sie HoloToolkit.Unity.InputModule oben in unser Skript und lassen Sie InteractiveCube IFocusable und IInputClickHandler erweitern. Unser Code sollte folgendermaßen aussehen:

using HoloToolkit.Unity.InputModule;
public class InteractiveCube : MonoBehaviour, IFocusable, IInputClickHandler {...} 

Durch die Erweiterung der Schnittstellen IFocuable und IInputClickHandler ermöglicht unsere Skriptkomponente dem übergeordneten GameObject das Abonnieren von Fokus- und Klickereignissen.

Lassen wir den Würfel drehen, wenn unser Blick darauf gerichtet ist. Für die IFocusable-Schnittstelle müssen zwei öffentliche Void-Methoden implementiert werden: OnFocusEnter und OnFocusExit. Erstellen Sie ein privates boolesches Feld und nennen Sie es Rotierend. Wenn wir den Würfel fokussieren, setzen Sie ihn auf true, und wenn unser Fokus beendet wird, setzen Sie ihn auf false. Unser Code sollte folgendermaßen aussehen:

public bool Rotating;
public void OnFocusEnter(){ Rotating = true;}
public void OnFocusExit(){ Rotating = false;}

Wir werden die eigentliche Rotation in Update () durchführen. Update () ist eine spezielle Unity-Methode, die für jeden Frame aufgerufen wird. Fügen Sie ein öffentliches Float-Feld mit dem Namen RotationSpeed ​​hinzu, um die Rotationsgeschwindigkeit zu steuern. Jedes öffentliche Feld in einer Komponente kann im Unity-Editor angepasst und initialisiert werden.

public float RotationSpeed;
void Update() { if (Rotating) transform.Rotate(Vector3.Up * Time.deltaTime * RotationSpeed);}

In Unity wird die Transformation verwendet, um die physischen Attribute wie Größe, Drehung und Position eines GameObjects zu steuern. Wir drehen das übergeordnete GameObject mit einem Grad pro Sekunde multipliziert mit der Geschwindigkeit um die y-Achse.

Fügen Sie die für IInputClickHandler erforderliche OnInputClicked-Methode hinzu, damit der Cube auf Klickereignisse reagiert. Erstellen Sie eine öffentliche Vector3-Variable namens ScaleChange. In der OnInputClicked-Methode erhöhen wir die Skalierung des Cubes um ScaleChange.

public Vector3 ScaleChange;
public void OnInputClicked(InputClickedEventData eventData) { transform.localScale += ScaleChange;}

Nachdem wir mit dem Skript fertig sind, navigieren Sie zurück zu Unity. Stellen Sie sicher, dass das Cube-Objekt ausgewählt ist, und setzen Sie die Variablen Speed ​​und ScaleChange auf 50 bzw. (.025, .025, .025). Fühlen Sie sich frei, mit verschiedenen Werten zu experimentieren! Unser Skript sollte folgendermaßen aussehen:

Genial! Wir haben das InteractiveCube-Skript fertiggestellt. Erstellen Sie Ihre App im Unity-Editor und führen Sie die Lösung in Visual Studio aus.

Zusammenfassung

In dieser exemplarischen Vorgehensweise haben Sie gelernt, wie Sie die Entwicklung von Unity for HoloLens einrichten, ein interaktives GameObject erstellen und Ihre Anwendung im Emulator ausführen.

Wenn Ihnen die Entwicklung von HoloLens gefällt, empfehlen wir Ihnen, die Microsoft Academy-Tutorials durchzugehen. Sie gehen die verschiedenen HoloLens-Schlüsselkonzepte im Detail durch und führen Sie durch die Erstellung einiger ziemlich cooler Apps.

Wenn Ihnen der Artikel gefallen hat oder Sie Feedback haben, hinterlassen Sie unten einen Kommentar!