2017-08-31 5 views
0

Je suis en train de modifier la scène de démonstration dans le Unity AR Core SDK et J'ai créé une variable booléenne statique isCreated pour vérifier si le préfabriqué Andy est créé.Comment définir une variable statique et instancier un seul préfab pour la démo AR Core

Dans le contrôle suivant

if (Session.Raycast(m_firstPersonCamera.ScreenPointToRay(touch.position), raycastFilter, outHit)) 

Je me suis fixé la variable pour être vrai, puis mettre un autre chèque ici

if (Input.touchCount < 1 || (touch = Input.GetTouch (0)).phase != TouchPhase.Began || isCreated) { 
    return; 
} 

Mais pour une raison quelconque, la variable est ne se prépare à vrai. J'ai également remarqué this error dans les journaux, et je ne peux m'empêcher de me demander si cela l'empêche d'être réglé.

08-29 14:11:40.564 13392-13407/? E/Unity: OPENGL NATIVE PLUG-IN ERROR: GL_INVALID_ENUM: enum argument out of range
(Filename: ./Runtime/GfxDevice/opengles/GfxDeviceGLES.cpp Line: 368)

Aidez-nous s'il vous plaît.

Répondre

0

Je ne sais pas à quel point vous voulez que votre booléenne statique, mais j'obtenir le même résultat en faisant quelque chose de similaire:

bool m_placed = false; // under the color array 

Alors comme vous, je vérifier ici:

if (Session.Raycast(m_firstPersonCamera.ScreenPointToRay(touch.position), raycastFilter, out hit) && !m_placed) { 
    ... 
    m_placed = true; // At the very end of this block 
} 

Cela fonctionne parfaitement pour moi. Je ne l'ai pas avoir à ajouter quoi que ce soit

if (Session.Raycast(m_firstPersonCamera.ScreenPointToRay(touch.position), raycastFilter, outHit)) 

L'erreur OpenGL est un problème commun qui a déjà été soulevée. Cela ne devrait pas affecter cela.

https://github.com/google-ar/arcore-unity-sdk/issues/3