2017-10-19 22 views
0

Je cherchai autour de différentes solutions pour faire disparaître un objet quand il quitte une fenêtre de caméra spécifique VR.Faire disparaître l'objet quand il quitte fenêtre de caméra spécifique VR

Je fini par utiliser la solution suivante à l'aide GeometryUtility:

 //Create camera planes 
     Plane[] planes = GeometryUtility.CalculateFrustumPlanes(Camera.main); 
     //Check if object renderer is in camera view 
     if (!GeometryUtility.TestPlanesAABB(planes, GetComponent<Renderer>().bounds)) 
     { 
      //Condition waiting for 2nd object to spawn (To avoid object 1 doesn't disappear instantly) 
      if (objectCondition.activeSelf) 
      { 
       //Deactivate object 
       gameObject.SetActive(false); 
      } 
     } 

Cependant, cela se traduit par l'objet à disparaître avant qu'il ne soit hors de la fenêtre (environ mi-chemin, au lieu de tout le chemin). Est-ce que je mets en œuvre ce problème ou est-ce simplement un problème de réalité virtuelle?

+0

Vous définissez vos limites? le script est dans votre gameobject actuel pour être désactivé? ce gameobject a un collisionneur? – joreldraw

Répondre

0

Vous pouvez soit utiliser Renderer.isVisible, ou Renderer.OnBecameVisible() et Renderer.OnBecameInvisible()

L'exemple ci-dessous des pages de manuel.

Activé ne désactive pas le GameObject, il ne fait que "suspendre" les mises à jour si l'objet n'est visible par aucune caméra. Si vous utilisez Coroutines, vous devrez les interrompre vous-même.

De toute évidence, étant donné que cette méthode utilise le moteur de rendu, vous ne pouvez pas simplement désactiver le gameobject. Je veux dire que vous pouvez, mais ce ne serait pas Réactivez par OnBecameVisible. Mais les objets en dehors de la caméra n'obtiennent renderd frustum/get cueilli de toute façon.

using UnityEngine; 

public class ExampleClass : MonoBehaviour { 
    void OnBecameInvisible() { 
     enabled = false; 
    } 
    void OnBecameVisible() { 
     enabled = true; 
    } 
} 
+0

J'ai essayé cette méthode, mais cela prend TOUTES les caméras en compte? Y compris rédacteur en chef, je veux vraiment une méthode où je peux préciser pour une seule caméra. –