Az első HoloLens alkalmazás létrehozása a Unity alkalmazással

A Microsoft HoloLens-je elég félelmetes. Az idei nyár szakmai gyakorlatom során ismertettem meg, és robbanásom volt rá.

A HoloLens alkalmazásokat a DirectX C ++ vagy a Unity C # használatával hozzák létre. Megállapítottam, hogy általában gyorsabb és könnyebb egy alkalmazást elindítani és futtatni a Unity-vel.

Ebben a cikkben felállítjuk az Unity for HoloLens fejlesztését, létrehozunk egy interaktív kockát és felpörgetjük a HoloLens emulátort, hogy láthassa alkotását. Ez a cikk a Unity kezdőinek szól, ezért ha van tapasztalata a szerkesztővel, akkor javasoljuk, hogy nézze át a Microsoft oktatóanyagát.

Előfeltételek

  1. Windows 10 PC a 2018. áprilisi frissítéssel
  2. A HoloLens emulátor, amelyet itt letölthet
  3. Visual Studio 2017 - A közösségi kiadás rendben van
  4. Unity - Győződjön meg arról, hogy a telepítés során hozzáadta a Windows .NET parancsfájl-háttérösszetevőt
  5. A HoloToolKit

A teljes forráskódot itt találja.

Beállít

Nyisd meg az Egységet. Ha először használja a szerkesztőt, a rendszer kéri a bejelentkezést vagy a regisztrációt. Azt javaslom, hogy a Unity Personal hacsak nem tervezi bevételszerzését az alkalmazásával.

A bejelentkezés után hozzon létre egy új projektet, és írja be a nevét. Ezzel a képernyővel üdvözölheti, miután a projekt befejezte az első beállítást.

Kattintson a jobb gombbal a bal alsó sarokban található Eszközök mappára. Keresse meg a Csomag importálása -> Egyéni csomag elemet, és nyissa meg a korábban letöltött HoloToolKit egységfájlt. Megjelenik egy Unity felugró ablak, kattintson az Összes gombra, és importálja az eszközöket.

Ezután elkészítjük a jelenetünket. Válassza a Fájl -> Új jelenet lehetőséget, és mentse el Főmenüként.

Az Unity-nek speciális konfigurációra van szüksége a HoloLens projektjének elkészítéséhez. Szerencsére a HoloToolKit rendelkezik olyan segédprogramokkal, amelyek ezt a konfigurációt elvégzik helyettünk. A felső eszköztáron válassza a Vegyes valóság eszköztár -> Konfigurálás -> Vegyes valóság projektbeállítások alkalmazása lehetőséget. Használja az alapértelmezett értékeket. A konfiguráció befejezése után alkalmazza a Vegyes valóság jelenetek beállításait. Törölje az Irányított fény GameObject alkalmazást.

Fantasztikus! Eddig importáltuk a HoloToolKit programot, és létrehoztuk az Unity-t a HoloLens fejlesztéséhez. A következő részben bemutatom Önöknek az Unity alapjait, és utána kapunk egy kockát, amelyet a képernyőn megjelenítünk.

Ismerkedjen meg a szerkesztővel

Így kell kinéznie a szerkesztőnek ezen a ponton. Figyelje meg a három dobozos területet:

A bal oldali piros terület a jelenet hierarchia panelje. Itt új játékobjektumokat adhatunk hozzá , és magas szintű áttekintést kaphatunk az aktuális alkalmazásról.A GameObject az összes Unity entitás alaposztálya. Lehet fizikai objektum, mint egy kocka, vagy olyan szkriptek gyűjteménye, mint a jelenet Input Manager.

Az alsó kék terület tartalmazza az eszközök menüt és a konzolt. Az eszközök menü pontosan olyan, amilyennek hangzik - tartalmazza az alkalmazás futtatásához szükséges C # szkripteket, anyagokat, előregyártott elemeket és hálókat.

A megfelelő zöld terület az ellenőr menü. Itt adhatja hozzá és módosíthatja a GameObjects összetevőit . Az összetevők alkotják a GameObjects viselkedését. Meghatározzák szüleik kinézetét, interaktivitását és fizikáját.

Kocka létrehozása

Most megkapjuk az első GameObject-t, amelyet a képernyőn megjelenítünk. A jelenet-hierarchia panelen kattintson a jobb gombbal, és válassza a 3D objektum -> Kocka lehetőséget. Egy kockának kell megjelennie a szerkesztőben.

Kattintson duplán a Kocka elemre a hierarchia panelen, és a jobb oldali ellenőrző panelen változtassa meg a pozíciót (0,0,2) értékre. Állítsa a méretarányt (.25, .25, .25) értékre. Az ellenőr paneljének így kell kinéznie:

Szép! Menjünk át az építési lépéseken, hogy láthassuk a kockánkat a HoloLens emulátorban.

A Unity menüben válassza a Fájl-> Építési beállítások lehetőséget. Meg kell jelennie a build felugró ablaknak, ezért nyomja meg a build gombot. A mappa felugró ablakában hozzon létre egy új mappát App néven, és válassza ki a build célállomásaként.

Az összeállítás befejezése után nyissa meg a Visual Studio megoldást az App mappában. Változtassa a hibakeresési beállításokat Release, x86-ra, és célozza meg a HoloLens emulátort. A beállítási sávnak így kell kinéznie:

Futtassa a megoldást, és miután az emulátor elindult és az alkalmazás betöltődött, látnia kell a kockáját a képernyőn.

A kocka interaktívvá tétele

Most, hogy kitaláltuk, hogyan lehet egy kockát bevinni az alkalmazásunkba, tegyük rá, hogy a kocka valóban csináljon valamit. Amikor a kockára pillantunk, az el fog forogni, és amikor rákattintunk a kockára, akkor megnő a mérete.

Lépjen vissza a Unity elemre, és hozzon létre egy új parancsfájlt az InteractiveCube nevű eszközök panelen. Új szkript létrehozásához kattintson a jobb gombbal az eszközök panelre, és válassza a Létrehozás -> C # szkript parancsot.

A szkript hozzáadásához a kockához ellenőrizze, hogy a kocka ki van-e jelölve, és húzza át a parancsfájlt az ellenőrző panelre. Így kell kinéznie:

Kattintson duplán a szkriptre az eszközök fülön, és megjelenik egy Visual Studio példány.

Importálja a HoloToolkit.Unity.InputModule parancsfájlunk tetejét, és tegye az InteractiveCube kiterjesztését az IFocusable és IInputClickHandler fájlokba. A kódunknak így kell kinéznie:

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

Az IFocuable és IInputClickHandler interfészek kibővítésével szkript-összetevőnk lehetővé teszi, hogy a szülő GameObject feliratkozhasson az események fókuszálására és kattintására.

Forgassuk a kockát, amikor a tekintetünk rajta van. Az IFocusable interfész két nyilvános void módszer megvalósítását követeli meg: OnFocusEnter és OnFocusExit. Hozzon létre egy saját logikai mezőt, és nevezze el Forgó névnek. Amikor a kockát fókuszáljuk, állítsuk igazra, és amikor a fókuszunk kilép, állítsuk hamisra. A kódunknak így kell kinéznie:

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

A tényleges forgatást az Update () alkalmazásban hajtjuk végre. Az Update () egy speciális Unity metódus, amelyet minden képkockának hívnak. A forgás sebességének szabályozásához adjon hozzá egy nyilvános úszó mezőt, amelynek neve RotationSpeed. Az összetevők bármely nyilvános mezője módosítható és inicializálható a Unity szerkesztőben.

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

A Unity-ben a transzformációt a fizikai tulajdonságok, például a GameObject méretének, forgatásának és helyzetének szabályozására használják. A szülő GameObject-et az y tengely körül forgatjuk másodpercenként egy fokkal, szorozva a sebességgel.

Ahhoz, hogy a kocka reagáljon a kattintási eseményekre, adja hozzá a IInputClickHandler által megkívánt OnInputClicked metódust. Hozzon létre egy nyilvános Vector3 változót ScaleChange néven. Az OnInputClicked módszerben növeljük a kocka méretarányát ScaleChange-el.

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

Most, hogy befejeztük a szkriptet, navigáljon vissza az Unity oldalra. Ellenőrizze, hogy a Cube objektum ki van-e jelölve, és állítsa a Speed ​​és ScaleChange változókat 50-re, illetve (.025, .025, .025). Kíséreljen nyugodtan különböző értékekkel! A szkriptünknek így kell kinéznie:

Fantasztikus! Befejeztük az InteractiveCube szkriptet. Készítse el alkalmazását a Unity szerkesztőből, és futtassa a megoldást a Visual Studio segítségével.

Összegzés

Ebben az áttekintésben megtanulta, hogyan kell beállítani az Unity-t a HoloLens fejlesztéshez, létrehozni egy interaktív GameObject-et és futtatni az alkalmazást az emulátorban.

Ha élvezi a HoloLens fejlesztését, javasoljuk, hogy nézze át a Microsoft Academy oktatóprogramjait. Részletesen áttekintik a HoloLens különféle kulcsfontosságú fogalmait, és végigvezetik Önt nagyon jó alkalmazások létrehozásával.

Ha tetszett a cikk, vagy visszajelzése van, hagyjon megjegyzést alább!