HoloLens (1re génération) notions de base 101 : terminer le projet avec l’appareil


Important

les didacticiels Mixed Reality Academy ont été conçus avec HoloLens (1ère génération), unity 2017 et Mixed Reality des casques immersifs à l’esprit. Nous estimons qu’il est important de laisser ces tutoriels à la disposition des développeurs qui recherchent encore des conseils pour développer des applications sur ces appareils. ces didacticiels ne seront pas mis à jour avec les derniers ensembles d’outils ou interactions utilisés pour HoloLens 2 et peuvent ne pas être compatibles avec les versions plus récentes d’unity. Ils sont fournis dans le but de fonctionner sur les appareils pris en charge. Une nouvelle série de tutoriels a été publiée pour HoloLens 2.


ce didacticiel vous guide tout au long d’un projet complet, unity, qui illustre les principales fonctionnalités de Windows Mixed Reality sur HoloLens y comprisle point de vue du point de vue, les gestes, l' entrée vocale, le son spatial et le mappage spatial.

Le didacticiel prendra environ 1 heure.

Prise en charge des appareils

Cours HoloLens Casques immersifs
Réalité mixte - Principes fondamentaux - Cours 101 : Projet complet avec appareil ✔️

Avant de commencer

Prérequis

Fichiers projet

  • Téléchargez les fichiers requis par le projet. Requiert Unity 2017,2 ou une version ultérieure.
    • Si vous avez encore besoin de la prise en charge d’Unity 5,6, utilisez cette version.
    • Si vous avez encore besoin de la prise en charge d’Unity 5,5, utilisez cette version.
    • Si vous avez encore besoin de la prise en charge d’Unity 5,4, utilisez cette version.
  • Désarchivez les fichiers sur votre bureau ou un autre emplacement facile à atteindre. Conservez le nom du dossier origami.

Notes

Si vous souhaitez examiner le code source avant le téléchargement, il est disponible sur GitHub.

Chapitre 1-monde « Holo »

Dans ce chapitre, nous allons configurer notre premier projet Unity et effectuer un pas à pas détaillé dans le processus de création et de déploiement.

Objectifs

  • Configurez Unity pour le développement holographique.
  • Créez un hologramme.
  • Consultez un hologramme que vous avez créé.

Instructions

  • Démarrez Unity.
  • Sélectionnez Ouvrir.
  • Entrez l’emplacement du dossier origami que vous avez précédemment désinstallé.
  • Sélectionnez origami , puis cliquez sur Sélectionner un dossier.
  • Étant donné que le projet origami ne contient pas de scène, enregistrez la scène par défaut vide dans un nouveau fichier à l’aide de : fichier / enregistrer la scène sous.
  • Nommez le nouvel origami de scène et appuyez sur le bouton Enregistrer .

Configurer la caméra virtuelle principale

  • Dans Hierarchy Panel, sélectionnez Main Camera.
  • Dans l' inspecteur , définissez sa position de transformation sur 0, 0,0.
  • Recherchez la propriété effacer les indicateurs et remplacez la liste déroulante skybox par couleur unie.
  • Cliquez sur le champ Background pour ouvrir un sélecteur de couleurs.
  • Définissez R, G, B et A sur 0.

Configurer la scène

  • Dans le volet hiérarchie, cliquez sur créer et créez un vide.
  • Cliquez avec le bouton droit sur le nouveau gameobject , puis sélectionnez Renommer. Renommez GameObject en OrigamiCollection.
  • dans le dossier Hologrammes du volet Project (développez actifs et sélectionnez Hologrammes ou double-cliquez sur le dossier Hologrammes dans le panneau Project) :
    • Faites glisser étape dans la hiérarchie pour être un enfant de OrigamiCollection.
    • Faites glisser Sphere1 dans la hiérarchie pour être un enfant de OrigamiCollection.
    • Faites glisser Sphere2 dans la hiérarchie pour être un enfant de OrigamiCollection.
  • Cliquez avec le bouton droit sur l’objet Light directionnel dans le panneau hiérarchie , puis sélectionnez supprimer.
  • dans le dossier Hologrammes , faites glisser lights à la racine du panneau de hiérarchie.
  • Dans la hiérarchie, sélectionnez OrigamiCollection.
  • Dans l' inspecteur, définissez la position de la transformation sur 0,-0,5, 2,0.
  • Appuyez sur le bouton de lecture dans Unity pour afficher un aperçu de vos hologrammes.
  • Les objets origami doivent apparaître dans la fenêtre d’aperçu.
  • Appuyez sur lecture une deuxième fois pour arrêter le mode aperçu.

Exportez le projet d’Unity vers Visual Studio

  • dans unity, sélectionnez Paramètres de Build de fichier >.

  • sélectionnez plateforme Windows universelle dans la liste plateforme , puis cliquez sur basculer la plateforme.

  • Affectez à SDK la valeur Universal 10 et type de build la valeur D3D.

  • Vérifiez les projets Unity C#.

  • Cliquez sur Ajouter des scènes ouvertes pour ajouter la scène.

  • Cliquez sur Générer.

  • Dans la fenêtre de l’Explorateur de fichiers qui s’affiche, créez un nouveau dossier nommé « App ».

  • Cliquez sur le dossierde l’application.

  • Appuyez sur Sélectionner un dossier.

  • lorsque unity est terminé, une fenêtre de Explorateur de fichiers s’affiche.

  • Ouvrez le dossier de l' application .

  • Ouvrez (double-clic) origami. sln.

  • à l’aide de la barre d’outils supérieure de Visual Studio, remplacez la cible Debug par Release et de ARM par X86.

  • Cliquez sur la flèche en regard du bouton périphérique, puis sélectionnez machine distante à déployer sur Wi-Fi.

    • Définissez l' adresse sur le nom ou l’adresse IP de votre HoloLens. si vous ne connaissez pas l’adresse ip de votre appareil, consultez les Options avancées de Paramètres > réseau & Internet > ou demandez à Cortana « Hey Cortana, qu’est-ce que mon adresse IP ? » .
    • si le HoloLens est attaché sur usb, vous pouvez sélectionner l' appareil à déployer sur usb.
    • Laissez le mode d’authentification défini sur universel.
    • Cliquez sur Sélectionner
  • Cliquez sur Déboguer > exécuter sans débogage ou appuyez sur CTRL + F5. S’il s’agit de la première fois que vous déployez sur votre appareil, vous devrez le coupler avec Visual Studio.

  • le projet Origami sera maintenant généré, déployé sur votre HoloLens, puis exécuté.

  • placez-vous sur votre HoloLens et recherchez vos nouveaux hologrammes.

Chapitre 2-point de regard

Dans ce chapitre, nous allons présenter la première des trois façons d’interagir avec vos hologrammes, en pointant le regard.

Objectifs

  • Visualisez votre point de regard à l’aide d’un curseur verrouillé.

Instructions

  • Retour à votre projet unity, puis fermez la fenêtre générer Paramètres si elle est toujours ouverte.
  • sélectionnez le dossier Hologrammes dans le panneau Project.
  • Faites glisser l’objet curseur dans le volet de la hiérarchie au niveau de la racine.
  • Double-cliquez sur l’objet curseur pour l’examiner en détail.
  • cliquez avec le bouton droit sur le dossier Scripts dans le panneau Project.
  • Cliquez sur le sous-menu créer .
  • Sélectionnez script C#.
  • Nommez le script WorldCursor. Remarque : le nom respecte la casse. Vous n’avez pas besoin d’ajouter l’extension. cs.
  • Sélectionnez l’objet curseur dans le panneau hiérarchie.
  • Glissez-déplacez le script WorldCursor dans le panneau de l' inspecteur.
  • Double-cliquez sur le script WorldCursor pour l’ouvrir dans Visual Studio.
  • Copiez et collez ce code dans WorldCursor. cs et Enregistrez tout.
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 the cursor 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;
        }
    }
}
  • régénérez l’application à partir de la Paramètres de Build de fichier >.
  • revenez à la solution Visual Studio précédemment utilisée pour effectuer le déploiement sur votre HoloLens.
  • Lorsque vous y êtes invité, sélectionnez « recharger tout ».
  • Cliquez sur Déboguer- > exécuter sans débogage ou appuyez sur CTRL + F5.
  • Examinez maintenant la scène et observez comment le curseur interagit avec la forme d’objets.

Chapitre 3-mouvements

Dans ce chapitre, nous allons ajouter la prise en charge des gestes. Lorsque l’utilisateur sélectionne une sphère papier, nous allons faire tomber la sphère en activant la gravité en utilisant le moteur physique Unity.

Objectifs

  • Contrôlez vos hologrammes avec le geste Select.

Instructions

Nous allons commencer par créer un script, puis détecter le mouvement Select.

  • Dans le dossier scripts , créez un script nommé GazeGestureManager.
  • Faites glisser le script GazeGestureManager sur l’objet OrigamiCollection dans la hiérarchie.
  • ouvrez le script GazeGestureManager dans Visual Studio et ajoutez le code suivant :
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 Awake()
    {
        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();
        }
    }
}
  • Créez un autre script dans le dossier scripts, cette fois nommé SphereCommands.
  • Développez l’objet OrigamiCollection dans l’affichage des hiérarchies.
  • Faites glisser le script SphereCommands sur l’objet Sphere1 dans le panneau hiérarchie.
  • Faites glisser le script SphereCommands sur l’objet Sphere2 dans le panneau hiérarchie.
  • ouvrez le script dans Visual Studio pour le modifier, puis remplacez le code par défaut par ce qui suit :
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;
        }
    }
}
  • Exportez, créez et déployez l’application sur votre HoloLens.
  • Examinez l’une des sphères.
  • Effectuez le mouvement SELECT et regardez la sphère de la sphère sur l’aire ci-dessous.

Chapitre 4-voix

Dans ce chapitre, nous allons ajouter la prise en charge de deux commandes vocales: « réinitialiser le monde » pour ramener les éléments restants à leur emplacement d’origine et « déposer la sphère » pour faire tomber la sphère.

Objectifs

  • Ajoutez des commandes vocales qui écoutent toujours en arrière-plan.
  • Créez un hologramme qui réagit à une commande vocale.

Instructions

  • Dans le dossier scripts , créez un script nommé SpeechManager.
  • Faites glisser le script SpeechManager sur l’objet OrigamiCollection dans la hiérarchie.
  • Ouvrez le script SpeechManager dans Visual Studio.
  • Copiez et collez ce code dans SpeechManager. cs et Enregistrez All:
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();
        }
    }
}
  • Ouvrez le script SphereCommands dans Visual Studio.
  • Mettez à jour le script pour le lire comme suit :
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();
    }
}
  • Exportez, créez et déployez l’application sur votre HoloLens.
  • Examinez l’une des sphères et dites «Drop Sphere».
  • Dites «Réinitialiser le monde» pour ramener les positions initiales.

Chapitre 5-sons spatiaux

Dans ce chapitre, nous allons ajouter de la musique à l’application, puis déclencher des effets sonores sur certaines actions. Nous utiliserons le son spatial pour fournir des sons à un emplacement spécifique dans l’espace 3D.

Objectifs

  • Écoutez des hologrammes dans votre monde.

Instructions

  • dans unity, sélectionnez dans le menu supérieur modifier > Project Paramètres > Audio
  • Dans le volet de l’inspecteur situé sur le côté droit, recherchez le paramètre de plug-in Spatializer , puis sélectionnez MS HRTF Spatializer.
  • à partir du dossier Hologrammes dans le panneau Project, faites glisser l’objet ambiance sur l’objet OrigamiCollection dans le panneau hiérarchie.
  • Sélectionnez OrigamiCollection et recherchez le composant audio source dans le panneau Inspecteur. Modifiez les propriétés suivantes :
    • Vérifiez la propriété spatial .
    • Vérifiez la lecture sur éveillé.
    • Remplacez spatial Blend par 3D en faisant glisser le curseur vers la droite. La valeur doit passer de 0 à 1 lorsque vous déplacez le curseur.
    • vérifiez la propriété Loop .
    • développez Paramètres audio 3d, puis entrez 0,1 pour le niveau Doppler.
    • Définissez volume Rolloff sur Rolloff logarithmique.
    • Définissez distance maximale sur 20.
  • Dans le dossier scripts , créez un script nommé SphereSounds.
  • Glissez-déplacez SphereSounds vers les objets Sphere1 et Sphere2 dans la hiérarchie.
  • ouvrez SphereSounds dans Visual Studio, mettez à jour le code suivant et enregistrez All.
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();
        }
    }
}
  • Enregistrez le script et revenez à Unity.
  • Exportez, créez et déployez l’application sur votre HoloLens.
  • Rapprochez-vous de l’étape et transformez-la en côte à côte pour entendre la modification des sons.

Chapitre 6-mappage spatial

Nous allons maintenant utiliser le mappage spatial pour placer la grille de jeux sur un objet réel dans le monde réel.

Objectifs

  • Intégrez votre monde réel dans le monde virtuel.
  • Placez vos hologrammes là où ils vous intéressent le plus.

Instructions

  • dans unity, cliquez sur le dossier Hologrammes dans le panneau Project.
  • Faites glisser la ressource de mappage spatial à la racine de la hiérarchie.
  • Cliquez sur l’objet mappage spatial dans la hiérarchie.
  • Dans le panneau Inspecteur, modifiez les propriétés suivantes :
    • Cochez la case dessiner des panneaux visuels .
    • Recherchez matériel de dessin , puis cliquez sur le cercle à droite. Tapez «Wireframe» dans le champ de recherche en haut. Cliquez sur le résultat, puis fermez la fenêtre. Lorsque vous effectuez cette opération, la valeur de Draw Material doit être définie sur Wireframe.
  • Exportez, créez et déployez l’application sur votre HoloLens.
  • Lorsque l’application s’exécute, un maillage filaire se superpose à votre monde réel.
  • Regardez comment une sphère enchaînée va tomber à l’étage, et à l’étage !

Nous allons maintenant vous montrer comment déplacer le OrigamiCollection vers un nouvel emplacement :

  • Dans le dossier scripts , créez un script nommé TapToPlaceParent.
  • Dans la hiérarchie, développez le OrigamiCollection et sélectionnez l’objet stage .
  • Faites glisser le script TapToPlaceParent sur l’objet stage.
  • ouvrez le script TapToPlaceParent dans Visual Studio et mettez-le à jour comme suit :
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;
            }
        }
    }
}
  • Exporter, générer et déployer l’application.
  • Vous devez maintenant être en mesure de placer le jeu à un emplacement spécifique par gazing, à l’aide du geste Select, puis en le déplaçant vers un nouvel emplacement et en réutilisant le geste Select.

Chapitre 7-divertissement holographique

Objectifs

  • Révélez l’entrée à un sous-monde holographique.

Instructions

Nous allons maintenant vous montrer comment dévoiler le sous-monde holographique :

  • dans le dossier Hologrammes du panneau Project :
    • Faites glisser le sous- monde dans la hiérarchie pour être un enfant de OrigamiCollection.
  • Dans le dossier scripts , créez un script nommé HitTarget.
  • Dans la hiérarchie, développez OrigamiCollection.
  • Développez l’objet stage et sélectionnez l’objet cible (ventilateur bleu).
  • Faites glisser le script HitTarget sur l’objet cible .
  • ouvrez le script HitTarget dans Visual Studio et mettez-le à jour comme suit :
using UnityEngine;

public class HitTarget : MonoBehaviour
{
    // These public fields become settable properties in the Unity editor.
    public GameObject underworld;
    public GameObject objectToHide;

    // Occurs when this object starts colliding with another object
    void OnCollisionEnter(Collision collision)
    {
        // Hide the stage and show the underworld.
        objectToHide.SetActive(false);
        underworld.SetActive(true);

        // Disable Spatial Mapping to let the spheres enter the underworld.
        SpatialMapping.Instance.MappingEnabled = false;
    }
}
  • Dans Unity, sélectionnez l’objet cible .
  • Deux propriétés publiques sont désormais visibles sur le composant cible d’accès et doivent référencer des objets dans notre scène :
    • Faites glisser le sous- monde du volet de la hiérarchie vers la propriété sous le composantcible d’accès .
    • Faites glisser étape du volet hiérarchie vers l' objet pour masquer la propriété sur le composant cible d’accès .
  • Exporter, générer et déployer l’application.
  • Placez la collection d’origamis à l’étage, puis utilisez le mouvement SELECT pour faire glisser une sphère.
  • Lorsque la sphère atteint la cible (ventilateur bleu), une explosion se produit. Le regroupement sera masqué et un trou au sous-monde s’affichera.

La fin

Et c’est la fin de ce didacticiel.

Vous avez appris :

  • Comment créer une application holographique dans Unity.
  • Comment utiliser le point de vue du regard, du geste, de la voix, du son et du mappage spatial.
  • Comment générer et déployer une application à l’aide de Visual Studio.

Vous êtes maintenant prêt à commencer à créer votre propre expérience holographique !

Voir aussi