2017-10-19 2 views
0

Ich habe nach verschiedenen Lösungen gesucht, um ein Objekt verschwinden zu lassen, wenn es ein bestimmtes Kamera-Ansichtsfenster in VR verlässt.Objekt verschwinden lassen, wenn es ein bestimmtes Kamera-Ansichtsfenster in VR verlässt

endete ich mit GeometryUtility folgenden Lösung oben mit:

 //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); 
      } 
     } 

dies in dem Objekt führt jedoch zu verschwinden, bevor sie aus dem Bildfenster (um halb aus, statt dem ganzen Weg) ist. Implementiere ich das falsch oder ist es einfach ein VR-Problem?

+0

Sie setzen Ihre Grenzen? Das Skript ist in deinem aktuellen Spielobjekt deaktiviert? Dieses Spielobjekt hat einen Collider? – joreldraw

Antwort

0

könnten Sie entweder Renderer.isVisible oder Renderer.OnBecameVisible() und Renderer.OnBecameInvisible()

Das folgende Beispiel ist von den Handbuchseiten.

Enabled deaktiviert das GameObject nicht, es "suspendiert" nur Updates, wenn das Objekt von keiner Kamera gesehen wird. Wenn Sie Coroutinen verwenden, müssen Sie sie selbst anhalten.

Offensichtlich können Sie das GameObject nicht deaktivieren, da diese Methode den Renderer verwendet. Ich meine, du könntest es, aber es würde nicht wieder von OnBecameVisible aktiviert werden. Aber Objekte außerhalb des Kamerasteins werden sowieso nicht gerendert.

using UnityEngine; 

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

Ich habe diese Methode versucht, aber es alle Kameras berücksichtigen, richtig? Einschließlich Editor, möchte ich wirklich eine Methode, wo ich dies für nur eine Kamera angeben kann. –

Verwandte Themen