web-dev-qa-db-fra.com

Créer des objets avec la détection du plan de sol une seule fois avec Vuforia et Unity

J'essaie de créer une application AR en utilisant Unity & Vuforia. J'ai un modèle 3D qui doit être créé lorsque le plan au sol est détecté.Mais cela ne doit se produire qu'une seule fois… .. À la façon dont Vuforia fonctionne, il continue à générer des objets en cours de reproduction lorsqu'un nouveau plan est détecté. Donc, ce que je dois faire, c'est détecter un plan une seule fois ou générer l'objet une seule fois. Comme je suis nouveau à Unity, j'ai besoin d'aide pour le faire. Parfait si quelqu'un pouvait me dire ce que je dois faire pour atteindre cet objectif.

4
Anup G Prasad

Dans votre application, vous devriez avoir un objet Plane Finder quelque part avec les propriétés suivantes définies par défaut
 enter image description here

L'objet Plane Finder est associé à un composant Behavior qui appelle une méthode Position Content si un plan est trouvé. Cette méthode appartient au Content Positioning Behaviour et crée une instance (clone) de votre Ground Plane Stage. Afin d'éviter plus d'une instance, vous devez importer le script vuforia Deploy Stage Once situé ici: https://library.vuforia.com/articles/Solution/ground-plane-guide.html et vous devez modifier le Plane Finder Behaviour en tant que le suivant:  enter image description here

3
Hristo

Je me suis longuement attardé dessus, en bref, nous devons désactiver AnchorInputListenerBehaviour après avoir touché . 1.- J'ai joint un nouveau script sur PlaneFinder avec le code ci-dessous:

<!-- language-all: c# -->
public void OnInteractiveHitTest(HitTestResult result)
{
    var listenerBehaviour = GetComponent<AnchorInputListenerBehaviour>();
    if (listenerBehaviour != null)
    {
        listenerBehaviour.enabled = false;
    }
}

2.- J'ai ajouté un événement sur le comportement de Plane Finder

 enter image description here

C'est tout, j'espère que ce sera utile

1

Pour les versions mises à jour:

 enter image description here

allez dans le réglage "Avancé" et le script "Sur test interactif" -> Sélectionnez l'option "Désactivé" du script. 

1
Daddy