HoloLens (1. generációs) Alapok 101E: Projekt befejezése az emulátorral

Fontos

Az Mixed Reality Academy oktatóanyagai az HoloLens (1. generációs), a Unity 2017 és Mixed Reality Modern headsetek szem előtt tartva voltak megtervezve. Ezért fontos, hogy ezeket az oktatóanyagokat a helyére helyezzük azoknak a fejlesztőknek, akik továbbra is útmutatást keresnek az eszközök fejlesztéséhez. Ezek az oktatóanyagok nem frissülnek a HoloLens 2-es verziójához használt legújabb eszközkészletekkel vagy interakciókkal, és előfordulhat, hogy nem kompatibilisek a Unity újabb verzióival. A rendszer fenntartja őket, hogy továbbra is a támogatott eszközökön dolgoznak. A 2. HoloLens új oktatóanyag-sorozat lett közzétéve.


Ez az oktatóanyag bemutatja a Unityben készült teljes projektet, amely bemutatja a Windows Mixed Reality alapvető funkcióit HoloLens többek között a tekintetet, a kézmozdulatokat, a hangbemenetet, a térbeli hangot és a térbeli leképezést. Az oktatóanyag befejezése körülbelül 1 órát fog igénybe venni.

Eszköztámogatás

Tanfolyam HoloLens Modern headsetek
MR Basics 101E: Projekt befejezése emulátorral ✔️

Előkészületek

Előfeltételek

Project fájlok

  • Töltse le a projekthez szükséges fájlokat. Unity 2017.2-es vagy újabb szükséges hozzá.
    • Ha továbbra is unity 5.6-támogatásra van szüksége, használja ezt a kiadást.
    • Ha továbbra is unity 5.5-támogatásra van szüksége, használja ezt a kiadást.
    • Ha továbbra is unity 5.4-támogatásra van szüksége, használja ezt a kiadást.
  • Archiválja a fájlokat az asztalra vagy más könnyen elérhető helyre. A mappa neve maradjon Következő.

Megjegyzés

Ha a letöltés előtt át szeretné nézni a forráskódot, az a következő GitHub.

1. fejezet – "Holo" világ

Ebben a fejezetben beállítjuk az első Unity-projektünket, és végiglépünk a build- és üzembe helyezési folyamaton.

Célkitűzések

  • A Unity beállítása holografikus fejlesztéshez.
  • Hologramot hozunk el.
  • Tekintse meg az Ön által készített hologramot.

Utasítások

  • Indítsa el a Unityt.
  • Válassza a Megnyitás lehetőséget.
  • Adja meg a location (hely) mappát a korábban archivált Mappaként.
  • Válassza a Andree lehetőséget, majd kattintson a Mappa kiválasztása elemre.
  • Mentse az új jelenet: FileSave Scene As ..
  • A jelenetnek nevezze el a jelenet nevét, majd nyomja le a Save (Mentés) gombot.

A fő kamera beállítása

  • A Hierarchia panelen válassza aFő kamera lehetőséget.
  • Az Inspectorban állítsa az átalakítás pozícióját 0,0,0-ra.
  • Keresse meg a Clear Flags tulajdonságot, és módosítsa a legördülő menüt a Skyboxróla Folytonos színre.
  • Kattintson a Háttér mezőre egy színválasztó megnyitásához.
  • Állítsa az R, G, B és A0-ra.

A jelenet beállítása

  • A Hierarchy (Hierarchia) panelen kattintsona Create and Create Empty (Üres létrehozása) elemre.
  • Kattintson a jobb gombbal az új GameObjectre, és válassza az Átnevezés lehetőséget. Nevezze át a GameObject nevet a Következőre:Relcollection.
  • A Hologramok panel Project mappájában:
    • Húzza a Stage (Fázis) hierarchiát a Hierarchia hierarchiába, hogy AzCollection gyermeke legyen.
    • Húzza a Sphere1-et a hierarchiába, hogy AzCollection gyermeke legyen.
    • Húzza a Sphere2-t a hierarchiába, hogy AzCollection gyermeke legyen.
  • Kattintson a jobb gombbal a Directional Light objektumra a Hierarchia panelen, és válassza a Törlés lehetőséget.
  • A Hologramok mappából húzza a Lights (Világítás) gombra a Hierarchia panel gyökérmappába.
  • In the Hierarchy, select the OrigamiCollection.
  • Az Inspectorbanállítsa az átalakítás pozícióját 0, -0,5, 2.0 állásra.
  • Nyomja le a Play gombot a Unityben a hologramok előnézetének megtekintéséhez.
  • Az előnézeti ablakban meg kell lennie a Foga objektumoknak.
  • Az előnézeti mód leállításhoz nyomja le még egyszer a Lejátszás gombot.

A projekt exportálása a Unityből Visual Studio

  • A Unityben válassza a File Build Gépházlehetőséget.
  • Válassza Windows Áruház lehetőséget a Platform listában, majd kattintson a Switch Platform (Platformváltás) elemre.
  • Állítsa az SDK-t a Universal 10 (Univerzális 10) és a Build Type (Build típusa) beállításátD3D-re.
  • Tekintse meg a Unity C#-projekteket.
  • Kattintson az Add Open Scenes (Nyitott jelenetek hozzáadása) gombra a jelenet hozzáadásához.
  • Kattintson a Lejátszó Gépház...elemre.
  • Az Inspector panelen válassza a Windows Áruház emblémát. Ezután válassza a Közzététel Gépházlehetőséget.
  • A Képességek szakaszban válassza a Mikrofon és a SpatialPerception képességeket.
  • A Build Gépház ablakban kattintson a Build elemre.
  • Hozzon létre egy "App" nevű új mappát.
  • Kattintson egyszer az Alkalmazásmappa elemre.
  • Kattintson a Mappa kiválasztása gombra.
  • Amikor a Unity végzett, megjelenik egy Fájlkezelő ablak.
  • Nyissa meg az Alkalmazás mappát.
  • Nyissa meg a Visual Studio-megoldást.
  • Az eszköz felső eszköztárának Visual Studio módosítsa a célt Hibakeresésről Kiadásra, ARM-ről X86-ra.
    • Kattintson az Eszköz gomb melletti nyílra, és válassza aHoloLens Emulator.
    • Kattintson a Hibakeresés – Indítás hibakeresés nélkül lehetőségre, vagy nyomja le a Ctrl + F5 billentyűkombinációt.
    • Egy idő után az emulátor aTerv projekttel kezdődik. Az emulátor elsőindításakor az emulátor indítása akár 15 percig is eltarthat. Ha elkezdődik, ne zárja be.

2. fejezet – Tekintet

Ebben a fejezetben bemutatjuk a hologramokkal való interakció első három módját – a tekintetét.

Célkitűzések

  • A tekintetét egy világ által zárolt kurzorral ábrázolhatja.

Utasítások

  • Vissza a Unity-projekthez, és zárja be a Build Gépház ablakot, ha még meg van nyitva.
  • Válassza ki a Hologramok mappát a Project panelen.
  • Húzza a Kurzor objektumot a Hierarchia panelre a gyökérszinten.
  • Kattintson duplán a Kurzor objektumra, hogy közelebbről is megvizsgáljuk.
  • Kattintson a jobb gombbal a Parancsfájlok mappára a Project panelen.
  • Kattintson a Létrehozás almenüre.
  • Válassza a C# szkript lehetőséget.
  • A szkriptnek nevezze el a Következőt: WorldCursor. Megjegyzés: A név megkülönbözteti a kis- és nagybetűket. A .cs kiterjesztést nem kell hozzáadnia.
  • Válassza ki a Kurzor objektumot a Hierarchia panelen.
  • Húzza a WorldCursor szkriptet az Inspector panelre.
  • Kattintson duplán a WorldCursor szkriptre a Visual Studio.
  • Másolja és illessze be ezt a kódot a WorldCursor.cs fájlba, majd mentse az Összeset.
using UnityEngine;

public class WorldCursor : MonoBehaviour
{
    private MeshRenderer meshRenderer;

    // Use this for initialization
    void Start()
    {
        // Grab the mesh renderer that's on the same object as this script.
        meshRenderer = this.gameObject.GetComponentInChildren<MeshRenderer>();
    }

    // Update is called once per frame
    void Update()
    {
        // Do a raycast into the world based on the user's
        // head position and orientation.
        var headPosition = Camera.main.transform.position;
        var gazeDirection = Camera.main.transform.forward;

        RaycastHit hitInfo;

        if (Physics.Raycast(headPosition, gazeDirection, out hitInfo))
        {
            // If the raycast hit a hologram...
            // Display the cursor mesh.
            meshRenderer.enabled = true;

            // Move thecursor to the point where the raycast hit.
            this.transform.position = hitInfo.point;

            // Rotate the cursor to hug the surface of the hologram.
            this.transform.rotation = Quaternion.FromToRotation(Vector3.up, hitInfo.normal);
        }
        else
        {
            // If the raycast did not hit a hologram, hide the cursor mesh.
            meshRenderer.enabled = false;
        }
    }
}
  • Építse újra az alkalmazást a Fájl buildelő Gépház.
  • Térjen vissza Visual Studio az emulátorban való üzembe helyezéshez korábban használt megoldáshoz.
  • Amikor a rendszer kéri, válassza az "Összes újratöltése" lehetőséget.
  • Kattintson a Hibakeresés – Indítás hibakeresés nélkül lehetőségre, vagy nyomja le a Ctrl + F5 billentyűkombinációt.
  • Az Xbox-vezérlővel keresse meg a jelenetben. Figyelje meg, hogyan használja a kurzor az objektumok alakját.

3. fejezet – Kézmozdulatok

Ebben a fejezetben a kézmozdulatok támogatását fogjuk hozzáadni. Amikor a felhasználó kiválaszt egy papír sphere-t, a unity fizikai motorjának használatával bekapcsoljuk a tömeget.

Célkitűzések

  • A Select (Kijelölés) kézmozdulattal vezérelheti a hologramokat.

Utasítások

Először létrehozunk egy szkriptet, mint a Select (Kijelölés) kézmozdulat észlelése.

  • A Scripts mappában hozzon létre egy GazeGestureManager nevű szkriptet.
  • Húzza a GazeGestureManager parancsfájlt a Hierarchy (Hierarchia) Lapcollection objektumára.
  • Nyissa meg a GazeGestureManager szkriptet a Visual Studio, és adja hozzá a következő kódot:
using UnityEngine;
using UnityEngine.XR.WSA.Input;

public class GazeGestureManager : MonoBehaviour
{
    public static GazeGestureManager Instance { get; private set; }

    // Represents the hologram that is currently being gazed at.
    public GameObject FocusedObject { get; private set; }

    GestureRecognizer recognizer;

    // Use this for initialization
    void Start()
    {
        Instance = this;

        // Set up a GestureRecognizer to detect Select gestures.
        recognizer = new GestureRecognizer();
        recognizer.Tapped += (args) =>
        {
            // Send an OnSelect message to the focused object and its ancestors.
            if (FocusedObject != null)
            {
                FocusedObject.SendMessageUpwards("OnSelect", SendMessageOptions.DontRequireReceiver);
            }
        };
        recognizer.StartCapturingGestures();
    }

    // Update is called once per frame
    void Update()
    {
        // Figure out which hologram is focused this frame.
        GameObject oldFocusObject = FocusedObject;

        // Do a raycast into the world based on the user's
        // head position and orientation.
        var headPosition = Camera.main.transform.position;
        var gazeDirection = Camera.main.transform.forward;

        RaycastHit hitInfo;
        if (Physics.Raycast(headPosition, gazeDirection, out hitInfo))
        {
            // If the raycast hit a hologram, use that as the focused object.
            FocusedObject = hitInfo.collider.gameObject;
        }
        else
        {
            // If the raycast did not hit a hologram, clear the focused object.
            FocusedObject = null;
        }

        // If the focused object changed this frame,
        // start detecting fresh gestures again.
        if (FocusedObject != oldFocusObject)
        {
            recognizer.CancelGestures();
            recognizer.StartCapturingGestures();
        }
    }
}
  • Hozzon létre egy másik szkriptet a Scripts mappában, ezúttal SphereCommands névvel.
  • Bontsa ki a TanúsítványCollection objektumot a Hierarchy (Hierarchia) nézetben.
  • Húzza a SphereCommands szkriptet a Hierarchia panel Sphere1 objektumára.
  • Húzza a SphereCommands szkriptet a Hierarchia panel Sphere2 objektumára.
  • Nyissa meg a szkriptet a Visual Studio szerkesztésre, és cserélje le az alapértelmezett kódot a következőre:
using UnityEngine;

public class SphereCommands : MonoBehaviour
{
    // Called by GazeGestureManager when the user performs a Select gesture
    void OnSelect()
    {
        // If the sphere has no Rigidbody component, add one to enable physics.
        if (!this.GetComponent<Rigidbody>())
        {
            var rigidbody = this.gameObject.AddComponent<Rigidbody>();
            rigidbody.collisionDetectionMode = CollisionDetectionMode.Continuous;
        }
    }
}
  • Az alkalmazás exportálása, összeállítása és üzembe helyezése a HoloLens emulátorban.
  • Nézzen körül a jelenetben, és középre ássa az egyik gömböt.
  • Nyomja le az A gombot az Xbox-vezérlőn, vagy nyomja le a Szóköz billentyűt a Kijelölés kézmozdulat szimulálására.

4. fejezet – Hang

Ebben a fejezetben két hangparancsot fogunk támogatni:"Reset world" (Világ alaphelyzetbe állítása) az eldobott sphere-eket az eredeti helyükre, a "Drop sphere" parancsot pedig a sphere leesését.

Célkitűzések

  • Adjon hozzá hangparancsokat, amelyek mindig a háttérben figyelnek.
  • Egy hangparancsra reagáló hologram létrehozása.

Utasítások

  • A Scripts mappában hozzon létre egy SpeechManager nevű szkriptet.
  • Húzza a SpeechManager-szkriptet a Hierarchy (Hierarchia)Collection objektumára
  • Nyissa meg a SpeechManager-szkriptet a Visual Studio.
  • Másolja és illessze be ezt a kódot a SpeechManager.cs fájlba, majd mentse az összeset:
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.Windows.Speech;

public class SpeechManager : MonoBehaviour
{
    KeywordRecognizer keywordRecognizer = null;
    Dictionary<string, System.Action> keywords = new Dictionary<string, System.Action>();

    // Use this for initialization
    void Start()
    {
        keywords.Add("Reset world", () =>
        {
            // Call the OnReset method on every descendant object.
            this.BroadcastMessage("OnReset");
        });

        keywords.Add("Drop Sphere", () =>
        {
            var focusObject = GazeGestureManager.Instance.FocusedObject;
            if (focusObject != null)
            {
                // Call the OnDrop method on just the focused object.
                focusObject.SendMessage("OnDrop", SendMessageOptions.DontRequireReceiver);
            }
        });

        // Tell the KeywordRecognizer about our keywords.
        keywordRecognizer = new KeywordRecognizer(keywords.Keys.ToArray());

        // Register a callback for the KeywordRecognizer and start recognizing!
        keywordRecognizer.OnPhraseRecognized += KeywordRecognizer_OnPhraseRecognized;
        keywordRecognizer.Start();
    }

    private void KeywordRecognizer_OnPhraseRecognized(PhraseRecognizedEventArgs args)
    {
        System.Action keywordAction;
        if (keywords.TryGetValue(args.text, out keywordAction))
        {
            keywordAction.Invoke();
        }
    }
}
  • Nyissa meg a SphereCommands szkriptet a Visual Studio.
  • Frissítse a szkriptet a következőképpen:
using UnityEngine;

public class SphereCommands : MonoBehaviour
{
    Vector3 originalPosition;

    // Use this for initialization
    void Start()
    {
        // Grab the original local position of the sphere when the app starts.
        originalPosition = this.transform.localPosition;
    }

    // Called by GazeGestureManager when the user performs a Select gesture
    void OnSelect()
    {
        // If the sphere has no Rigidbody component, add one to enable physics.
        if (!this.GetComponent<Rigidbody>())
        {
            var rigidbody = this.gameObject.AddComponent<Rigidbody>();
            rigidbody.collisionDetectionMode = CollisionDetectionMode.Continuous;
        }
    }

    // Called by SpeechManager when the user says the "Reset world" command
    void OnReset()
    {
        // If the sphere has a Rigidbody component, remove it to disable physics.
        var rigidbody = this.GetComponent<Rigidbody>();
        if (rigidbody != null)
        {
            rigidbody.isKinematic = true;
            Destroy(rigidbody);
        }

        // Put the sphere back into its original local position.
        this.transform.localPosition = originalPosition;
    }

    // Called by SpeechManager when the user says the "Drop sphere" command
    void OnDrop()
    {
        // Just do the same logic as a Select gesture.
        OnSelect();
    }
}
  • Az alkalmazás exportálása, összeállítása és üzembe helyezése a HoloLens emulátorban.
  • Az emulátor támogatni fogja a számítógép mikrofonját, és válaszol a hangjára: állítsa be a nézetet úgy, hogy a kurzor az egyik sphere-re ássa, és mondja a "Drop Sphere" szót.
  • Mondja ki a "Reset World"(Világ alaphelyzetbe állítása) szót, hogy visszaállítsa őket a kezdeti helyükre.

5. fejezet – Térbeli hang

Ebben a fejezetben hozzáadjuk a zeneszámokat az alkalmazáshoz, majd hanghatásokat váltunk ki bizonyos műveletekre. Térbeli hang használatával fogunk hangokat adni egy adott helynek 3D-térben.

Célkitűzések

  • A hologramok világának hallatán.

Utasítások

  • A Unityben válassza a felső menü Edit Project Gépház > Audio
  • Keresse meg a Spatializer beépülő modul beállítását, és válassza az MS HRTF Spatializer lehetőséget.
  • A Hologramok mappából húzza a Ambience objektumot a Hierarchy PanelEncollection objektumára.
  • Válassza a AndCollection lehetőséget, és keresse meg az Audio Source (Hangforrás) összetevőt. Módosítsa ezeket a tulajdonságokat:
    • Ellenőrizze a Spatialize tulajdonságot.
    • Tekintse meg a Play On Az usa-nak való lejátszást.
    • Módosítsa a Spatial Blendet3D-sre a csúszka jobbra húzásával.
    • Ellenőrizze a Loop tulajdonságot.
    • Bontsa ki a 3D Sound Gépház,és adja meg a 0,1-eta Doppler-szinthez.
    • A Volume Rolloff (Kötetváltás)beállításnál adja meg a Logaritmic Rolloff (Logaritmikus leváltás) beállítását.
    • Állítsa a Maximális távolság beállítását 20-ra.
  • A Scripts mappában hozzon létre egy SphereSounds nevű szkriptet.
  • Húzza a SphereSounds adatokat a hierarchia Sphere1- és Sphere2-objektumaiba.
  • Nyissa meg a SphereSounds Visual Studio, frissítse a következő kódot, és mentse az összeset.
using UnityEngine;

public class SphereSounds : MonoBehaviour
{
    AudioSource impactAudioSource = null;
    AudioSource rollingAudioSource = null;

    bool rolling = false;

    void Start()
    {
        // Add an AudioSource component and set up some defaults
        impactAudioSource = gameObject.AddComponent<AudioSource>();
        impactAudioSource.playOnAwake = false;
        impactAudioSource.spatialize = true;
        impactAudioSource.spatialBlend = 1.0f;
        impactAudioSource.dopplerLevel = 0.0f;
        impactAudioSource.rolloffMode = AudioRolloffMode.Logarithmic;
        impactAudioSource.maxDistance = 20f;

        rollingAudioSource = gameObject.AddComponent<AudioSource>();
        rollingAudioSource.playOnAwake = false;
        rollingAudioSource.spatialize = true;
        rollingAudioSource.spatialBlend = 1.0f;
        rollingAudioSource.dopplerLevel = 0.0f;
        rollingAudioSource.rolloffMode = AudioRolloffMode.Logarithmic;
        rollingAudioSource.maxDistance = 20f;
        rollingAudioSource.loop = true;

        // Load the Sphere sounds from the Resources folder
        impactAudioSource.clip = Resources.Load<AudioClip>("Impact");
        rollingAudioSource.clip = Resources.Load<AudioClip>("Rolling");
    }

    // Occurs when this object starts colliding with another object
    void OnCollisionEnter(Collision collision)
    {
        // Play an impact sound if the sphere impacts strongly enough.
        if (collision.relativeVelocity.magnitude >= 0.1f)
        {
            impactAudioSource.Play();
        }
    }

    // Occurs each frame that this object continues to collide with another object
    void OnCollisionStay(Collision collision)
    {
        Rigidbody rigid = gameObject.GetComponent<Rigidbody>();

        // Play a rolling sound if the sphere is rolling fast enough.
        if (!rolling && rigid.velocity.magnitude >= 0.01f)
        {
            rolling = true;
            rollingAudioSource.Play();
        }
        // Stop the rolling sound if rolling slows down.
        else if (rolling && rigid.velocity.magnitude < 0.01f)
        {
            rolling = false;
            rollingAudioSource.Stop();
        }
    }

    // Occurs when this object stops colliding with another object
    void OnCollisionExit(Collision collision)
    {
        // Stop the rolling sound if the object falls off and stops colliding.
        if (rolling)
        {
            rolling = false;
            impactAudioSource.Stop();
            rollingAudioSource.Stop();
        }
    }
}
  • Mentse a szkriptet, és térjen vissza a Unitybe.
  • Az alkalmazás exportálása, összeállítása és üzembe helyezése a HoloLens emulátorban.
  • A teljes hatás érdekében elhasználja a mikrofont, és lépjen tovább a fázisról, és hallja a hangváltozást.

6. fejezet – Térbeli leképezés

Most térbeli leképezést fogunk használni, hogy a játéktábla egy valós objektumba kerül.

Célkitűzések

  • Valós világ a virtuális világba.
  • Helyezze a hologramokat oda, ahol a legfontosabbak.

Utasítások

  • Kattintson a Hologramok mappára a Project panelen.
  • Húzza a Térbeli leképezés objektumát a hierarchia gyökerére.
  • Kattintson a Térbeli leképezés objektumra a Hierarchiában.
  • Az Inspector panelen módosítsaa következő tulajdonságokat:
    • Jelölje be a Vizualizációs hálók rajzolás jelölőnégyzetet.
    • Keresse meg a Draw Material (Anyag rajzolás) gombra, és kattintson a jobb oldalon található körre. Írja be a felső keresőmezőbe a"wireframe" (wireframe)szövegmezőt. Kattintson az eredményre, majd zárja be az ablakot.
  • Az alkalmazás exportálása, összeállítása és üzembe helyezése a HoloLens emulátorban.
  • Az alkalmazás futtatásakor egy korábban beolvasott, valós életből készült helyiség hálója lesz keretben megjelenítve.
  • Figyelje meg, hogyan esik le egy gördülő sphere a fázisról és a padlóra!

A következőben azt mutatjuk be, hogyan helyezze át aCollection adatokat egy új helyre:

  • A Scripts mappában hozzon létre egy TapToPlaceParent nevű szkriptet.
  • In the Hierarchy, expand the OrigamiCollection and select the Stage object.
  • Húzza a TapToPlaceParent szkriptet a Stage objektumra.
  • Nyissa meg a TapToPlaceParent szkriptet a Visual Studio, és frissítse a következőre:
using UnityEngine;

public class TapToPlaceParent : MonoBehaviour
{
    bool placing = false;

    // Called by GazeGestureManager when the user performs a Select gesture
    void OnSelect()
    {
        // On each Select gesture, toggle whether the user is in placing mode.
        placing = !placing;

        // If the user is in placing mode, display the spatial mapping mesh.
        if (placing)
        {
            SpatialMapping.Instance.DrawVisualMeshes = true;
        }
        // If the user is not in placing mode, hide the spatial mapping mesh.
        else
        {
            SpatialMapping.Instance.DrawVisualMeshes = false;
        }
    }

    // Update is called once per frame
    void Update()
    {
        // If the user is in placing mode,
        // update the placement to match the user's gaze.

        if (placing)
        {
            // Do a raycast into the world that will only hit the Spatial Mapping mesh.
            var headPosition = Camera.main.transform.position;
            var gazeDirection = Camera.main.transform.forward;

            RaycastHit hitInfo;
            if (Physics.Raycast(headPosition, gazeDirection, out hitInfo,
                30.0f, SpatialMapping.PhysicsRaycastMask))
            {
                // Move this object's parent object to
                // where the raycast hit the Spatial Mapping mesh.
                this.transform.parent.position = hitInfo.point;

                // Rotate this object's parent object to face the user.
                Quaternion toQuat = Camera.main.transform.localRotation;
                toQuat.x = 0;
                toQuat.z = 0;
                this.transform.parent.rotation = toQuat;
            }
        }
    }
}
  • Az alkalmazás exportálása, összeállítása és üzembe helyezése.
  • Most már képesnek kell lennie arra, hogy a játékot egy adott helyre helyezze, ha rá tekint, a Select (Kijelölés) kézmozdulatot(A vagy Szóköz billentyűt) használja, majd egy új helyre lép, majd ismét a Select (Kijelölés) kézmozdulatot használja.

Vége

Ezzel véget ért az oktatóanyag!

A következőket tanulta meg:

  • Holografikus alkalmazás létrehozása a Unityben.
  • A tekintet, a kézmozdulatok, a hang, a hangok és a térbeli leképezés használata.
  • Alkalmazás összeállítása és üzembe helyezése a Visual Studio.

Most már készen áll arra, hogy saját holografikus alkalmazásokat hozzon létre!

Lásd még