射线广播穿过物体

我的raycast通过带有层的网格碰撞器/盒子碰撞器的对象。

我似乎找不到解决方法。请帮助我。

我尝试了不同的解决方案,但光线投射仍会穿过物体。即使是顽固物体后面的物体也被召唤出来。

 public float maxRayDistance = 2.0f;

 public LayerMask layerMask;
 public GUISkin mySkin;
 public bool showGui = false;
 public RaycastHit hit;

 void Update()
 {
     Vector3 dir = gameObject.transform.TransformDirection(Vector3.forward);
     if (Physics.Raycast(transform.position,dir,out hit,maxRayDistance,layerMask))
     {
         showGui = true;
         if (Input.GetButtonDown("Use"))
         {
             Invoke("Sendaction",0.3f);
         }
     }
     else
     {
         showGui = false;
     }
 }

 public void Sendaction()
 {
     GameObject target = hit.collider.gameObject;                
     target.BroadcastMessage("action");
 }

Layers

Object with Layer other

zhy123456789zhy 回答:射线广播穿过物体

您需要在Collider(UnityEditor)中检查IsTrigger,以使Raycast对您的对象起作用。 如果此操作不起作用,则可能是您的投影机中有一个有关Raycast的设置,您可能已在“物理设置”中将其关闭。

本文链接:https://www.f2er.com/3149845.html

大家都在问