2016-09-04 3 views
0

Ich verwende eine orthographische Projektion für die Kamera, um einem Spieler zu folgen. Ich würde gerne alle Spielobjekte zwischen dem Spieler und der Kamera finden, so dass ich die Deckkraft ändern kann, so dass sie teilweise transparent sind, während sie die Sicht der Kamera blockieren. Ich habe über Raycasting gelesen, aber es scheint, dass es nur das erste Objekt zwischen dem Player und der Kamera geben würde. Welche Ansätze gibt es, dies zu erreichen?Finde alle Objekte zwischen Spieler und Kamera

+2

'RaycastAll' -> https://docs.unity3d.com/ScriptReference/Physics2D.RaycastAll.html –

Antwort

0

Gerade Physics.RaycastAll wie folgt verwenden:

public class CameraScript : MonoBehaviour 
{ 
    //Attach this script to the camera// 

    public GameObject player; 

    void Update() 
    { 
     float dist = Vector3.Distance(transform.Position, player.transform.position); 
     RaycastHit[] hits = hits = Physics.RaycastAll(transform.position, 
                 transform.forward, 100.0F); 
     foreach (RaycastHit h in hits) 
     { 
      //Change the opacity of the of each object to semitransparent. 
     } 
    } 
} 
+0

ich eine Version dieses Arbeits, wo ich drehen kann aus dem Renderer des Objekts. In meinem Fall mag es nicht, dass die Prefabs, die ich aus dem Asset Store verwende, den Rendermodus des Shaders auf etwas anderes als undurchsichtig eingestellt haben. Objekte völlig verschwinden zu lassen ist etwas merkwürdig, daher muss ich einen anderen Ansatz verfolgen. Vielen Dank. – Roger

+0

Ok ich sehe. Gut, dass ich helfen konnte. – Agustin0987

Verwandte Themen