C# 物理,光线投射有时不会击中

C# 物理,光线投射有时不会击中,c#,unity3d,raycasting,C#,Unity3d,Raycasting,我有一种非常奇怪的Raycast行为。游戏中有两个移动的物体。我在更新方法中使用光线投射来确定第二个对象是否在附近。但有时,在明显“真实”的情况下,raycast返回false。有人能帮我解决这个问题吗?非常感谢 // Returns false, but should be true var middle = Physics.Raycast(Car.SensorPointRight.position, Car.

我有一种非常奇怪的Raycast行为。游戏中有两个移动的物体。我在更新方法中使用光线投射来确定第二个对象是否在附近。但有时,在明显“真实”的情况下,raycast返回false。有人能帮我解决这个问题吗?非常感谢

    // 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);


在unity3d中,碰撞器仅在
fixeUpdate()
方法运行后才会更新,因此,这可能就是光线投射不会击中对象的原因

通常最好将带有碰撞器的游戏对象的所有转换保持在
FixedUpdate()
中,这样光线投射就可以按预期工作


对于初学者,只需尝试将您在问题中提到的代码从
Update()
方法移动到
FixedUpdate()
方法(如果您没有,只需创建一个)。

抱歉,在回答之前等待的时间太长了!你是对的,现在它工作了!