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

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

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

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

Προαπαιτούμενα

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

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

Στήνω

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

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

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

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

Το Unity χρειάζεται μια ειδική διαμόρφωση για να δημιουργήσει ένα έργο για το HoloLens. Ευτυχώς, το HoloToolKit έχει βοηθητικά σενάρια που κάνουν αυτήν τη διαμόρφωση για εμάς. Στην επάνω γραμμή εργαλείων, επιλέξτε Κιτ εργαλείων μικτής πραγματικότητας -> Διαμόρφωση -> Εφαρμογή ρυθμίσεων έργου μικτής πραγματικότητας. Χρησιμοποιήστε τις προεπιλεγμένες τιμές. Μετά την ολοκλήρωση της διαμόρφωσης, εφαρμόστε τις ρυθμίσεις σκηνής μικτής πραγματικότητας. Διαγράψτε το Directional Light GameObject.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τώρα που τελειώσαμε με το σενάριο, επιστρέψτε στο Unity. Βεβαιωθείτε ότι το αντικείμενο Cube είναι επιλεγμένο και ορίστε τις μεταβλητές Speed ​​and ScaleChange σε 50 και (.025, .025, .025) αντίστοιχα. Μη διστάσετε να πειραματιστείτε με διαφορετικές τιμές! Το σενάριό μας πρέπει να μοιάζει με αυτό:

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

Περίληψη

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

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

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