Ako vytvoriť svoju prvú aplikáciu HoloLens pomocou Unity

Microsoft HoloLens je úplne čudný. Bol som s tým oboznámený na svojej stáži toto leto a nechal som si pre to urobiť poriadny rozvoj.

Aplikácie HoloLens sa vytvárajú pomocou DirectX s C ++ alebo Unity s C #. Zistil som, že spustenie aplikácie s jednotkou Unity je všeobecne rýchlejšie a jednoduchšie.

V tomto článku nastavíme Unity pre vývoj HoloLens, vytvoríme interaktívnu kocku a roztočíme emulátor HoloLens, aby ste videli svoju tvorbu. Tento článok je určený pre úplných začiatočníkov s jednotou Unity, takže ak máte skúsenosti s editorom, odporúčam vám prejsť si návody spoločnosti Microsoft.

Predpoklady

  1. Počítač so systémom Windows 10 s aktualizáciou z apríla 2018
  2. Emulátor HoloLens, ktorý si môžete stiahnuť tu
  3. Visual Studio 2017 - komunitné vydanie je v poriadku
  4. Unity - počas inštalácie nezabudnite pridať koncový komponent skriptovacieho systému Windows .NET
  5. HoloToolKit

Celý zdrojový kód nájdete tu.

Nastaviť

Otvorte jednotu. Ak používate editor prvýkrát, budete vyzvaní k prihláseniu alebo prihláseniu. Ak nemáte v pláne speňažiť svoju aplikáciu, odporúčam vám Unity Personal.

Po prihlásení vytvorte nový projekt a zadajte názov. Po dokončení úvodného nastavenia projektu by ste mali byť touto obrazovkou pozdravení.

Kliknite pravým tlačidlom myši na priečinok Majetky v ľavom dolnom rohu. Prejdite na Import Package -> Custom Package a otvorte súbor jednoty HoloToolKit, ktorý sme si predtým stiahli. Zobrazí sa vyskakovacie okno Unity, kliknite na All a importujte diela.

Ďalej vytvoríme našu scénu. Vyberte Súbor -> Nová scéna a uložte ju ako Hlavnú.

Unity potrebuje špeciálnu konfiguráciu, aby mohol vytvoriť projekt pre HoloLens. Našťastie má HoloToolKit obslužné skripty, ktoré túto konfiguráciu robia za nás. Na hornom paneli nástrojov vyberte Nástroje pre zmiešanú realitu -> Konfigurovať -> Použiť nastavenia projektu pre zmiešanú realitu. Použite predvolené hodnoty. Po dokončení konfigurácie použite nastavenie scény zmiešanej reality. Odstráňte objekt Game of Directional Light.

Úžasné! Zatiaľ sme importovali HoloToolKit a nastavili sme Unity pre vývoj HoloLens. V nasledujúcej časti vám predstavím základy Unity a potom dostaneme kocku na vykreslenie na obrazovke.

Oboznámenie sa s redaktorom

Takto by mal editor vyzerať v tejto chvíli. Všimnite si tri zalomené oblasti:

Červená oblasť vľavo je panel hierarchie scén. Sem môžeme pridať nové GameObjects a získať prehľad o aktuálnej aplikácii na vysokej úrovni.GameObject je základná trieda pre všetky entity Unity. Môžu to byť fyzický objekt ako kocka alebo zbierka skriptov ako Input Manager na scéne.

Spodná modrá oblasť obsahuje ponuku prostriedkov a konzolu. Ponuka diel je presne taká, ako to znie - obsahuje skripty C #, materiály, panely a siete potrebné na spustenie vašej aplikácie.

Pravá zelená plocha je ponuka inšpektorov. Tu môžete pridávať a upravovať Komponenty svojich GameObjects. Správanie vašich GameObjects tvoria komponenty. Určujú vzhľad, interaktivitu a fyziku svojich rodičov.

Vytvorenie kocky

Teraz dostaneme náš prvý GameObject, ktorý sa má vykresliť na obrazovke. Na paneli hierarchie scén kliknite pravým tlačidlom myši a vyberte položku 3D objekt -> Kocka. V editore by sa mala objaviť kocka.

Dvakrát kliknite na kocku na paneli v hierarchii a na pravom paneli inšpektora zmeňte pozíciu na (0,0,2). Nastaviť mierku na (0,25, 0,25, 0,25). Váš kontrolný panel by mal vyzerať takto:

Pekný! Prejdime si kroky zostavenia, aby sme videli našu kocku v emulátore HoloLens.

V jednote vyberte položku Súbor-> Nastavenia zostavy. Malo by sa zobraziť vyskakovacie okno zostavenia, takže stlačte tlačidlo zostavenia. V rozbaľovacom zozname priečinkov vytvorte nový priečinok s názvom Aplikácia a vyberte ho ako cieľ zostavenia.

Po dokončení zostavenia otvorte riešenie Visual Studio v priečinku App. Zmeňte možnosti ladenia na Release, x86 a zamerajte sa na emulátor HoloLens. Panel možností by mal vyzerať takto:

Spustite riešenie a po spustení emulátora a načítaní aplikácie by ste mali vidieť svoju kocku na obrazovke.

Vytvorenie interaktívnej kocky

Teraz, keď sme prišli na to, ako dostať kocku do našej aplikácie, urobme kocku skutočne niečo. Keď sa pozrieme na kocku, bude sa otáčať a po kliknutí na kocku sa zväčší.

Prejdite späť na jednotku a vytvorte nový skript na paneli prostriedkov s názvom InteractiveCube. Ak chcete vytvoriť nový skript, kliknite pravým tlačidlom myši na panel prostriedkov a vyberte príkaz Vytvoriť -> C # skript.

Ak chcete pridať skript do kocky, uistite sa, že je kocka vybratá, a presuňte skript na panel inšpektora. Malo by to vyzerať takto:

Dvakrát kliknite na skript na karte prostriedkov a mala by sa zobraziť inštancia Visual Studio.

Importujte HoloToolkit.Unity.InputModule do hornej časti nášho skriptu a nechajte InteractiveCube rozšíriť IFocusable a IInputClickHandler. Náš kód by mal vyzerať takto:

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

Vďaka rozšíreniu rozhraní IFocuable a IInputClickHandler umožňuje naša skriptová súčasť nadradenému GameObject prihlásiť sa na odber udalostí zameraných na kliknutie.

Necháme kocku rotovať, keď na ňu hľadíme. Rozhranie IFocusable vyžaduje, aby sme implementovali dve verejné metódy neplatnosti: OnFocusEnter a OnFocusExit. Vytvorte súkromné ​​logické pole a pomenujte ho Rotujúce. Keď zameráme kocku, nastavíme ju na hodnotu true a keď bude naše zameranie ukončené, nastavíme ju na hodnotu false. Náš kód by mal vyzerať takto:

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

Samotné otočenie urobíme v Update (). Update () je špeciálna metóda Unity, ktorá sa nazýva každý rámec. Ak chcete riadiť rýchlosť otáčania, pridajte verejné plavákové pole s názvom RotationSpeed. Akékoľvek verejné pole v komponente je možné upraviť a inicializovať v editore Unity.

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

V jednote sa transformácia používa na riadenie fyzických atribútov, ako sú veľkosť, rotácia a poloha objektu GameObject. Otáčame nadradený GameObject okolo osi y o jeden stupeň za sekundu vynásobený rýchlosťou.

Ak chcete, aby kocka reagovala na udalosti kliknutia, pridajte metódu OnInputClicked požadovanú IInputClickHandler. Vytvorte verejnú premennú Vector3 s názvom ScaleChange. V metóde OnInputClicked zvýšime mierku kocky o ScaleChange.

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

Teraz, keď sme dokončili skript, prejdite späť na Jednotu. Uistite sa, že je vybraný objekt Cube, a nastavte premenné Speed ​​a ScaleChange na 50, respektíve (0,025, 0,025, 0,025). Nebojte sa experimentovať s rôznymi hodnotami! Náš skript by mal vyzerať takto:

Úžasné! Dokončili sme skript InteractiveCube. Zostavte svoju aplikáciu z editora Unity a spustite riešenie zo sady Visual Studio.

Zhrnutie

V tomto návode ste sa naučili, ako nastaviť Unity pre vývoj HoloLens, vytvoriť interaktívny GameObject a spustiť aplikáciu v emulátore.

Ak vás vývoj HoloLens baví, odporúčam vám absolvovať tutoriály Microsoft Academy. Podrobne prechádzajú rôznymi kľúčovými konceptmi HoloLens a prevedú vás vytváraním skvelých aplikácií.

Ak sa vám článok páčil alebo máte spätnú väzbu, zanechajte komentár nižšie!