Πώς να δημιουργήσετε την πρώτη σας εφαρμογή HoloLens με την Unity

Microsoft HoloLens. Πιστωτική εικόνα https://www.flickr.com/photos/jiff01/15867880743

HoloLens της Microsoft είναι αρκετά φοβερό φοβερό. Μου παρουσιάστηκα στην πρακτική μου το φετινό καλοκαίρι και έχω μια έκρηξη που εξελίσσεται για αυτό.

Οι εφαρμογές HoloLens δημιουργούνται χρησιμοποιώντας είτε DirectX με C ++ είτε Unity με C #. Βρήκα ότι είναι γενικά γρηγορότερο και πιο εύκολο να αποκτήσετε μια εφαρμογή με την Unity.

Σε αυτό το άρθρο, θα δημιουργήσουμε ανάπτυξη Unity for HoloLens, θα δημιουργήσουμε ένα διαδραστικό κύβο και θα γυρίσουμε τον εξομοιωτή HoloLens, ώστε να μπορείτε να δείτε τη δημιουργία σας. Αυτό το άρθρο προορίζεται για συνολικά αρχάριους της Unity, οπότε αν έχετε εμπειρία με τον εκδότη, θα συνιστούσα να προχωρήσετε στα μαθήματα της Microsoft.

Προϋποθέσεις

  1. Ένας υπολογιστής με Windows 10 με την ενημέρωση του Απριλίου 2018
  2. Το Emulator HoloLens που μπορείτε να κατεβάσετε εδώ
  3. Visual Studio 2017 - Κοινοτική έκδοση είναι μια χαρά
  4. Ενότητα - Βεβαιωθείτε ότι έχετε προσθέσει το στοιχείο υποστήριξης των Windows .NET scripting κατά την εγκατάσταση
  5. Το HoloToolKit

Μπορείτε να βρείτε τον πλήρη πηγαίο κώδικα εδώ.

Στήνω

Ανοίξτε την Ενότητα. Εάν αυτή είναι η πρώτη φορά που χρησιμοποιείτε τον επεξεργαστή, θα σας ζητηθεί να συνδεθείτε ή να εγγραφείτε. Θα ήθελα να συστήσω την Unity Personal, εκτός αν σκοπεύετε να δημιουργήσετε έσοδα από την εφαρμογή σας.

Αφού συνδεθείτε, δημιουργήστε ένα νέο έργο και πληκτρολογήστε ένα όνομα. Θα πρέπει να υποδεχθείτε με αυτήν την οθόνη αφού ολοκληρωθεί η αρχική εγκατάσταση.

Unity editor κατά την πρώτη εκκίνηση

Κάντε δεξί κλικ στο φάκελο "Ενεργές" στην κάτω αριστερή γωνία. Μεταβείτε στην επιλογή Εισαγωγή πακέτου -> Προσαρμοσμένο πακέτο και ανοίξτε το αρχείο ενότητας HoloToolKit που κατεβάσαμε νωρίτερα. Θα εμφανιστεί ένα αναδυόμενο παράθυρο Unity, κάντε κλικ στην επιλογή Όλα και εισαγάγετε τα στοιχεία.

Στη συνέχεια θα δημιουργήσουμε τη σκηνή μας. Επιλέξτε Αρχείο -> Νέα σκηνή και αποθηκεύστε την ως Κύριο.

Η Ενότητα χρειάζεται μια ειδική διαμόρφωση για να χτίσει ένα έργο για το HoloLens. Ευτυχώς, το HoloToolKit έχει σενάρια χρησιμότητας που κάνουν αυτή τη διαμόρφωση για εμάς. Στην επάνω γραμμή εργαλείων, επιλέξτε Mixed Reality Toolkit -> Διαμόρφωση -> Εφαρμογή ρυθμίσεων έργου μικτής πραγματικότητας. Χρησιμοποιήστε τις προεπιλεγμένες τιμές. Μετά την ολοκλήρωση της διαμόρφωσης, εφαρμόστε τις ρυθμίσεις σκηνής ανάμεικτης πραγματικότητας. Διαγράψτε το αντικείμενο κατεύθυνσης φωτός.

Φοβερός! Μέχρι τώρα έχουμε εισάγει το HoloToolKit και έχουμε δημιουργήσει την ανάπτυξη της Unity for HoloLens. Στο επόμενο τμήμα θα σας παρουσιάσω τα βασικά στοιχεία της Ενότητας και στη συνέχεια θα πάρετε έναν κύβο για να εμφανιστεί στην οθόνη.

Εξοικείωση με τον συντάκτη

Αυτός είναι ο τρόπος με τον οποίο θα πρέπει ο εκδότης να μοιάζει σε αυτό το σημείο. Παρατηρήστε τις τρεις περιοχές που έχουν εγκλωβιστεί:

Η κόκκινη περιοχή στα αριστερά είναι ο πίνακας ιεραρχίας σκηνών. Εδώ μπορούμε να προσθέσουμε νέα GameObjects, και να πάρουμε μια επισκόπηση υψηλού επιπέδου της τρέχουσας εφαρμογής. Ένα GameObject είναι μια κλάση βάσης για όλες τις οντότητες της Unity. Μπορούν να είναι ένα φυσικό αντικείμενο όπως ένας κύβος ή μια συλλογή σεναρίων, όπως το Input Manager στη σκηνή.

Η κάτω μπλε περιοχή περιέχει το μενού ενεργητικού και την κονσόλα. Το μενού ενεργητικού είναι ακριβώς αυτό που ακούγεται - περιέχει τα σενάρια C #, τα υλικά, τις προθήκες και τα μάτια που απαιτούνται για την εκτέλεση της εφαρμογής σας.

Η σωστή πράσινη περιοχή είναι το μενού επιθεωρητή. Εδώ μπορείτε να προσθέσετε και να τροποποιήσετε τα στοιχεία των GameObjects σας. Τα συστατικά είναι αυτά που αποτελούν τη συμπεριφορά των GameObjects σας. Προσδιορίζουν την εμφάνιση, την αλληλεπίδραση και τη φυσική του γονέα τους.

Δημιουργία κύβου

Τώρα θα έχουμε το πρώτο μας GameObject να εμφανιστεί στην οθόνη. Στο πλαίσιο ιεραρχίας σκηνών, κάντε δεξί κλικ και επιλέξτε 3D Object -> Cube. Θα πρέπει να εμφανιστεί ένας κύβος στον επεξεργαστή.

Κάντε διπλό κλικ στο κύβο στον πίνακα ιεραρχίας και, στη δεξιά στήλη επιθεωρητή, αλλάξτε τη θέση σε (0,0,2). Ορίστε την κλίμακα (.25, .25, .25). Ο πίνακας επιθεωρητών σας θα πρέπει να φαίνεται ως εξής:

Πίνακας επιθεωρητών κύβου

Ομορφη! Ας περάσουμε τα βήματα δημιουργίας έτσι ώστε να μπορέσουμε να δούμε τον κύβο μας στον εξομοιωτή HoloLens.

Στην Ενότητα, επιλέξτε File-> Build Settings. Θα εμφανιστεί το αναδυόμενο παράθυρο δημιουργίας, χτυπήστε έτσι το κουμπί δημιουργίας. Στο αναδυόμενο φάκελο, δημιουργήστε ένα νέο φάκελο που ονομάζεται εφαρμογή και επιλέξτε το ως προορισμό δημιουργίας.

Αφού ολοκληρωθεί η δημιουργία, ανοίξτε τη λύση Visual Studio στο φάκελο εφαρμογής. Αλλάξτε τις επιλογές εντοπισμού σφαλμάτων σε Release, x86 και στοχεύστε τον εξομοιωτή HoloLens. Η γραμμή επιλογών σας θα πρέπει να έχει την εξής μορφή:

Επιλογές εντοπισμού σφαλμάτων για τον εξομοιωτή HoloLens

Εκτελέστε τη λύση και μετά την εκκίνηση του εξομοιωτή και την φόρτωση της εφαρμογής σας, θα πρέπει να δείτε τον κύβο σας στην οθόνη.

Κύβος στον εξομοιωτή

Κάνοντας τον κύβο διαδραστικό

Τώρα που έχουμε καταλάβει πώς να πάρετε έναν κύβο στην εφαρμογή μας, ας κάνουμε τον κύβο να κάνει κάτι. Όταν κοιτάζουμε τον κύβο, θα περιστραφεί, και όταν κάνουμε κλικ στον κύβο, θα αυξηθεί σε μέγεθος.

Πλοηγηθείτε πίσω στην Ενότητα και δημιουργήστε μια νέα δέσμη ενεργειών στον πίνακα στοιχείων που ονομάζεται InteractiveCube. Για να δημιουργήσετε ένα νέο σενάριο, κάντε δεξί κλικ στον πίνακα στοιχείων και επιλέξτε Create -> C # script.

Για να προσθέσετε το σενάριο στον κύβο, βεβαιωθείτε ότι ο κύβος είναι επιλεγμένος και σύρετε και αφήστε το σενάριο στον πίνακα επιθεωρητών. Θα πρέπει να μοιάζει με αυτό:

Κάντε διπλό κλικ στο σενάριο στην καρτέλα "Στοιχεία" και θα εμφανιστεί ένα στιγμιότυπο του Visual Studio.

Εισαγάγετε HoloToolkit.Unity.InputModule στην κορυφή της δέσμης ενεργειών μας, και να κάνετε το InteractiveCube να επεκταθεί σε IFocusable και IInputClickHandler. Ο κώδικας μας θα πρέπει να φαίνεται ως εξής:

χρησιμοποιώντας HoloToolkit.Unity.InputModule;
δημόσια τάξη InteractiveCube: MonoBehavior, IFocusable, IInputClickHandler {
...
}}

Με την επέκταση των διεπαφών IFocuable και IInputClickHandler, το συστατικό στοιχείο δέσμης ενεργειών επιτρέπει στο γονικό GameObject να εγγραφεί για να εστιάσει και να κάνει κλικ στα συμβάντα.

Ας κάνουμε τον κύβο να περιστραφεί όταν το βλέμμα μας είναι πάνω του. Η διεπαφή IFocusable απαιτεί να εφαρμόσουμε δύο δημόσιες κενές μεθόδους: OnFocusEnter και OnFocusExit. Δημιουργήστε ένα ιδιωτικό πεδίο boolean και ονομάστε το περιστρεφόμενο. Όταν εστιάζουμε τον κύβο, το θέτουμε σε αληθινό, και όταν η εστία μας εξέρχεται, θέστε το σε ψευδές. Ο κώδικας μας θα πρέπει να φαίνεται ως εξής:

δημόσιο bool Περιστροφή;
δημόσιο κενό OnFocusEnter ()
{
    Περιστροφή = αλήθεια;
}}
δημόσιο κενό OnFocusExit ()
{
    Περιστροφή = ψευδής.
}}

Θα κάνουμε την πραγματική περιστροφή στην Ενημέρωση (). Η Ενημέρωση () είναι μια ειδική μέθοδος Unity που ονομάζεται κάθε καρέ. Για να ελέγξετε την ταχύτητα περιστροφής, προσθέστε ένα δημόσιο πεδίο float με το όνομα RotationSpeed. Κάθε δημόσιο πεδίο σε ένα στοιχείο μπορεί να ρυθμιστεί και να αρχικοποιηθεί στον επεξεργαστή Unity.

δημόσιο floatRotationSpeed;
άκυρη Ενημέρωση () {
    αν (Περιστροφή)
        μετασχηματίζετε. Ρυθμίστε (Vector3.Up * Time.deltaTime
            * Ταχύτητα περιστροφής);
}}

Στην Ενότητα, ο μετασχηματισμός χρησιμοποιείται για τον έλεγχο των φυσικών χαρακτηριστικών όπως μέγεθος, περιστροφή και θέση ενός GameObject. Περιστρέφουμε το γονικό GameObject γύρω από τον άξονα y σε ένα βαθμό ανά δευτερόλεπτο πολλαπλασιασμένο με την ταχύτητα.

Για να κάνετε τον κύβο να ανταποκριθεί στα συμβάντα κλικ, προσθέστε τη μέθοδο OnInputClicked που απαιτείται από το IInputClickHandler. Δημιουργήστε μια δημόσια μεταβλητή Vector3 που ονομάζεται ScaleChange. Στη μέθοδο OnInputClicked, θα αυξήσουμε την κλίμακα του κύβου με το ScaleChange.

δημόσια Vector3 ScaleChange;
δημόσιο κενό OnInputClicked (InputClickedEventData eventData) {
    transform.localScale + = ΚλίμακαChange;
}}

Τώρα που τελειώσαμε με το σενάριο, πλοηγηθείτε πίσω στην Ενότητα. Βεβαιωθείτε ότι έχει επιλεγεί το αντικείμενο Cube και ρυθμίστε τις μεταβλητές Ταχύτητα και Κλίμακα σε 50 και (.025, .025, .025) αντίστοιχα. Νιώστε ελεύθεροι να δοκιμάσετε διαφορετικές αξίες! Το σενάριό μας πρέπει να έχει την εξής μορφή:

Φοβερός! Έχουμε τελειώσει τη δέσμη ενεργειών InteractiveCube. Δημιουργήστε την εφαρμογή σας από τον επεξεργαστή Unity και εκτελέστε τη λύση από το Visual Studio.

Περίληψη

Σε αυτήν την περιήγηση, μάθατε πώς να ρυθμίσετε την ανάπτυξη της Unity for HoloLens, να δημιουργήσετε ένα interactive GameObject και να εκτελέσετε την εφαρμογή σας στον εξομοιωτή.

Εάν απολαμβάνετε την ανάπτυξη της HoloLens, σας συνιστώ να περάσετε από τα μαθήματα της Microsoft Academy. Αναλύουν λεπτομερώς τις διάφορες βασικές έννοιες του HoloLens και σας βοηθούν να δημιουργήσετε κάποιες πολύ δροσερές εφαρμογές.

Αν σας άρεσε το άρθρο ή έχετε ανατροφοδότηση, αφήστε ένα σχόλιο παρακάτω!