2016-05-16 7 views
0

ESSENTALY, was ich versuche, ist ein Raycast Pass durch ein Objekt und ein anderes Objekt im Inneren treffen, ohne das erste Objekt zu ignorieren, also wenn der Spieler dort hat Maus über das erste Objekt, aber nicht die zweite, es wird nur das erste Objekt treffen, aber wenn die Maus vorbei ist, trifft es nur das zweite Objekt, ich kann eine visuelle Referenz bereitstellen, wenn möglich, nur um Text über das zweite Objekt anzuzeigen.C# Unity Raycast durch ein Objekt, ohne es zu ignorieren und es immer noch zu treffen

 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); 
     RaycastHit hitInfo; 


     if (Physics.Raycast(ray, out hitInfo)) 
     { 

      { 
       NameTag = hitInfo.transform.name; //Send information of the Object to the GUI Label 

       hoverOverActive = true; 

Dies ist das grundlegende Raycast-Skript, das ich habe.

+0

Raycast Rückkehr nur die ersten Objekt, das berühren. Sie müssen Raycastall verwenden, wenn Sie mehr als einen Collider erkennen müssen. Wenn Sie irgendein Bild anfügen, kann ich besser verstehen, was Sie benötigen, und ich denke, dass mit raycast und layermasterask – joreldraw

Antwort

0

Was Sie suchen, ist eine Raycast Maske. Auf diese Weise können Sie eine Ebene angeben, die bei einem Raycast-Ereignis ignoriert wird.

Im Unity Editor benötigen Sie eine neue Ebene zu erstellen und erinnern, seinen Wert, zB ignoreLayer

In Ihrem Raycast Code müssen Sie diese Schicht als ‚Maske‘ setzen, damit es werden ignoriert: zB

public int ignoreLayer = 8

in, Physics.Raycast(ray, out hitInfo) Sie Ihre Maske angeben hier, wie Sie es in optional an Physics.Raycastpassieren kannLink zu Unity Dokumentation: http://docs.unity3d.com/ScriptReference/Physics.Raycast.html

public static bool Raycast(Vector3 origin, Vector3 direction, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);

Dieses Video auf Youtube erklärt, wie Raycast Maskierung verwenden, sehr, sehr gut, damit ich dies auch für Sie in Link finden: https://www.youtube.com/watch?v=XO6KCCtGPpA

+0

möglich ist Die Frage ist ein wenig merkwürdig geschrieben, aber das OP sagte 'ohne das erste Objekt zu ignorieren. Ich denke, die Lösung für ihn ist, zwei Raycasts zu machen, eine, die das zweite Objekt treffen kann, und wenn es keinen neuen Raycast für das erste Objekt macht. –

+0

Vielen Dank all dies ist eine große Hilfe, ich werde wieder fragen, ob ich weitere Hilfe brauche, aber das scheint alles zu sein, was ich brauche. – ryand444

Verwandte Themen