Kako stvoriti svoju prvu HoloLens aplikaciju s Unity

Microsoftov HoloLens prilično je čudesan. Upoznao sam ga na svojoj praksi ovog ljeta i za to sam se vrlo brzo razvio.

Aplikacije HoloLens kreiraju se pomoću DirectX-a sa C ++ ili Unity sa C #. Otkrio sam da je općenito brže i jednostavnije pokrenuti aplikaciju i pokrenuti je s Unityjem.

U ovom ćemo članku postaviti Unity za razvoj HoloLens-a, stvoriti interaktivnu kocku i okrenuti HoloLens emulator kako biste mogli vidjeti svoje stvaranje. Ovaj je članak namijenjen totalnim početnicima Unityja, pa ako imate iskustva s uređivačem, preporučio bih da prođete kroz Microsoftove vodiče.

Preduvjeti

  1. Računalo sa sustavom Windows 10 s ažuriranjem iz travnja 2018
  2. HoloLens Emulator koji možete preuzeti ovdje
  3. Visual Studio 2017 - izdanje zajednice je u redu
  4. Jedinstvo - tijekom instalacije obavezno dodajte pozadinsku komponentu Windows .NET skriptiranja
  5. HoloToolKit

Potpuni izvorni kod možete pronaći ovdje.

Postaviti

Otvori jedinstvo. Ako prvi put koristite uređivač, od vas će se zatražiti da se prijavite ili prijavite. Preporučio bih Unity Personal osim ako ne planirate unovčavati svoju aplikaciju.

Nakon što se prijavite, izradite novi projekt i unesite ime. Ovaj bi vas zaslon trebao pozdraviti nakon što projekt završi početno postavljanje.

Desni klik na mapu Assets u donjem lijevom kutu. Idite na Uvoz paketa -> Prilagođeni paket i otvorite datoteku jedinstva HoloToolKit koju smo ranije preuzeli. Pojavit će se skočni prozor Unity, kliknite Sve i uvezite sredstva.

Dalje ćemo stvoriti našu scenu. Odaberite Datoteka -> Nova scena i spremite je kao Glavnu.

Unity treba posebnu konfiguraciju kako bi izradio projekt za HoloLens. Srećom, HoloToolKit ima pomoćne skripte koje nam čine ovu konfiguraciju. Na gornjoj alatnoj traci odaberite Mixed Reality Toolkit -> Configure -> Apply Mixed Reality Project Settings. Upotrijebite zadane vrijednosti. Nakon završetka konfiguracije primijenite Postavke miješane stvarnosti. Izbrišite objekt usmjerenog svjetla.

Super! Do sada smo uvezli HoloToolKit i postavili Unity za razvoj HoloLens-a. U sljedećem odjeljku upoznat ću vas s osnovama Unityja, a nakon toga dobit ćemo kocku za prikaz na ekranu.

Upoznavanje s urednikom

Tako bi urednik u ovom trenutku trebao izgledati. Primijetite tri područja u koja se upakiraju:

Crveno područje s lijeve strane je ploča hijerarhije scene. Ovdje možemo dodati nove GameObjects i dobiti pregled trenutne aplikacije na visokoj razini.GameObject je osnovna klasa za sve Unity entitete. Mogu biti fizički objekt poput kocke ili zbirka skripti poput Upravitelja unosa u sceni.

Donje plavo područje sadrži izbornik sredstava i konzolu. Izbornik sredstava upravo tako zvuči - sadrži C # skripte, materijale, montažne dijelove i mreže potrebne za pokretanje vaše aplikacije.

Desno zeleno područje je izbornik inspektora. Ovdje možete dodati i izmijeniti komponente svojih GameObjects. Komponente su ono što čini ponašanje vaših GameObjects. Oni određuju izgled, interaktivnost i fiziku svojih roditelja.

Stvaranje kocke

Sad ćemo dobiti svoj prvi GameObject koji će se prikazati na ekranu. Na ploči hijerarhije scene kliknite desnom tipkom miša i odaberite 3D objekt -> Kocka. U uređivaču bi se trebala pojaviti kocka.

Dvaput kliknite Kocka na ploči u hijerarhiji, a na desnoj nadzornoj ploči promijenite položaj u (0,0,2). Postavite ljestvicu na (.25, .25, .25). Vaša inspektorska ploča trebala bi izgledati ovako:

Lijepo! Prođimo kroz korake gradnje kako bismo mogli vidjeti našu kocku u HoloLens emulatoru.

U Unity odaberite File-> Build Settings. Trebao bi se pojaviti skočni prozor za izgradnju, pa pritisnite gumb za izgradnju. U skočnom prozoru mape stvorite novu mapu pod nazivom App i odaberite je kao odredište gradnje.

Nakon završetka izrade otvorite rješenje Visual Studio u mapi App. Promijenite opcije otklanjanja pogrešaka u Release, x86 i ciljajte HoloLens emulator. Traka opcija trebala bi izgledati ovako:

Pokrenite rješenje i nakon pokretanja emulatora i učitavanja aplikacije trebali biste vidjeti svoju kocku na ekranu.

Izrada kocke interaktivnom

Sad kad smo shvatili kako u našu kocku ubaciti kocku, učinimo da kocka zapravo nešto učini. Kad pogledamo kocku, ona će se okretati, a kad kliknemo na kocku, ona će se povećati.

Vratite se natrag u Unity i stvorite novu skriptu na ploči sredstava koja se zove InteractiveCube. Da biste stvorili novu skriptu, kliknite desnom tipkom miša na ploču s imovinom i odaberite Stvori -> C # skripta.

Da biste skriptu dodali na kocku, provjerite je li kocka odabrana i povucite i ispustite skriptu na kontrolnu ploču. To bi trebalo izgledati ovako:

Dvaput kliknite skriptu na kartici sredstava i trebala bi se pojaviti instanca Visual Studija.

Uvezite HoloToolkit.Unity.InputModule na vrh naše skripte i učinite da InteractiveCube proširi IFocusable i IInputClickHandler. Naš kod bi trebao izgledati ovako:

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

Proširivanjem sučelja IFocuable i IInputClickHandler, naša komponenta skripte omogućuje nadređenom GameObjectu da se pretplati na događaje fokusa i klika.

Učinimo da se kocka okreće kad je naš pogled usmjeren na nju. Sučelje IFocusable zahtijeva da implementiramo dvije metode javne praznine: OnFocusEnter i OnFocusExit. Stvorite privatno logičko polje i nazovite ga Rotating. Kada fokusiramo kocku, postavite je na true, a kada naš fokus izađe, postavite je na false. Naš kod bi trebao izgledati ovako:

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

Stvarnu rotaciju izvršit ćemo u programu Update (). Update () je posebna Unity metoda koja se naziva svaki okvir. Da biste kontrolirali brzinu rotacije, dodajte javno plutajuće polje pod nazivom RotationSpeed. Bilo koje javno polje u komponenti može se prilagoditi i inicijalizirati u uređivaču Unity.

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

U Unity-u se transformacija koristi za kontrolu fizičkih atributa kao što su veličina, rotacija i položaj GameObject-a. Rotiramo matični GameObject oko y osi za jedan stupanj u sekundi pomnožen s brzinom.

Da bi kocka odgovorila na događaje klika, dodajte metodu OnInputClicked koju zahtijeva IInputClickHandler. Stvorite javnu Vector3 varijablu pod nazivom ScaleChange. U metodi OnInputClicked povećat ćemo mjerilo kocke za ScaleChange.

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

Sad kad smo završili sa skriptom, vratite se natrag u Unity. Provjerite je li odabran objekt Cube i postavite varijable Speed ​​i ScaleChange na 50 i (.025, .025, .025). Slobodno eksperimentirajte s različitim vrijednostima! Naša skripta trebala bi izgledati ovako:

Super! Završili smo skriptu InteractiveCube. Izradite svoju aplikaciju iz uređivača Unity i pokrenite rješenje iz Visual Studija.

Sažetak

U ovom koraku naučili ste kako postaviti Unity za razvoj HoloLens-a, stvoriti interaktivni GameObject i pokrenuti svoju aplikaciju u emulatoru.

Ako uživate u razvoju HoloLens-a, potičem vas da prođete kroz vodiče za Microsoft Academy. Oni detaljno pregledavaju razne ključne koncepte HoloLens-a i vode vas kroz stvaranje nekih prilično cool aplikacija.

Ako vam se svidio članak ili imate povratne informacije, ostavite komentar ispod!