不带网格的长方体碰撞器和Physics.Raycast
本文关键字:Physics Raycast 碰撞 长方体 网格 | 更新日期: 2023-09-27 18:28:10
我将Raycast投射到场景中的一个现有Box对撞机
if (Physics.Raycast(mousePositionInWorld, transform.forward, 10))
{
Debug.Log("Ray hit something");
}
我收到消息雷击中了一些东西
但我从来没有触发盒子对撞机
void OnTriggerEnter(Collider other) {
Debug.Log("Menu hit");
}
目标对象是只有Box碰撞器的gameObject,以及用于触发检查的脚本
OnTriggerEnter(和其他碰撞器事件方法)仅在实际发生碰撞时调用,而不是通过投射光线。要解决您的问题,这取决于您的用例。
如果你想在真正的碰撞之前做出反应,你可以把你的对撞机放大到网格的1.5大小
如果你需要这两种情况,即对直接冲突做出反应,并且在其他一些情况下需要之前采取一些行动,你应该拆分你的代码,例如:
if (Physics.Raycast(mousePositionInWorld, transform.forward, 10)) {
doSomething ();
}
void OnTriggerEnter(Collider other) {
doSomething ();
}
void doSomething () {
}