我有一个非常奇怪的Raycast行为。 Theare是我游戏中的2个移动物体。我在Update方法中使用raycast来查明第二个对象是否在附近。但有时候,光线投射会明显失败,而真正的"的情况。有人可以帮我解决这个问题吗?非常感谢!
// Returns false, but should be true
var middle = Physics.Raycast(Car.SensorPointRight.position,
Car.CarObject.right, out middleHitsInfo,
(DistanceBetweenPaths - _carColliderOffset));
if (IsUserCar)
DebugHepler.Ray(Car.SensorPointRight.position,
Car.CarObject.right * (DistanceBetweenPaths - _carColliderOffset),
middle ? Color.red : Color.white);
答案 0 :(得分:2)
在unity3d中,只有在FixedUpdate()
方法运行后才会更新碰撞器,因此这可能就是为什么你的对象没有被光线投射击中的原因。
通常最好将游戏对象的所有变换与FixedUpdate()
中的碰撞者保持一致,这样光线投射应该按预期工作。
对于初学者,只需尝试将您在问题中提到的代码从Update()
方法移动到FixedUpdate()
方法(如果您没有,只需创建一个)。