【问题标题】:Raycast passes through objectsRaycast 穿过物体
【发布时间】:2019-11-08 00:05:23
【问题描述】:

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

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

我尝试了不同的解决方案,但光线投射仍然通过对象。即使是难以处理的物体后面的物体也被召唤出来。

 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

【问题讨论】:

  • 你能在检查器中显示你配置的图层蒙版吗?
  • 是的,我刚刚添加了它的截图
  • 其实你没有,我们想看看贴出的脚本附加到的gameObject

标签: unity3d raycasting


【解决方案1】:

您需要检查 Collider (UnityEditor) 中的 IsTrigger 以使 Raycast 对您的对象起作用。 如果这不起作用,您的项目中有一个关于 Raycast 的设置,您可能在物理设置中关闭了该设置。

【讨论】:

  • 非常感谢!检查物理设置确实有效。我忘了勾选那里的一层。干杯!
猜你喜欢
  • 1970-01-01
  • 2014-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多