光线投射穿过物体

Raycast passes through objects

我的光线投射通过带有网格的对象 collider/box 带有图层的碰撞器。

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

我尝试了不同的解决方案,但光线投射仍然穿过物体。就连棘手的物体背后的物体也被呼唤出来。

 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

您需要在 Collider (UnityEditor) 中选中 IsTrigger 才能让 Raycast 作用于您的对象。 如果这不起作用,则您的项目中有一个关于 Raycast 的设置,您可能已在物理设置中将其关闭。