快速移动的物体在整体中穿过箱式对撞机

时间:2017-05-10 10:59:42

标签: unity3d unity5 unityscript rigid-bodies

我是团结的新手......问题是,当我的2D物体以越来越快的速度向下移动时,它会在覆盖somme距离之后从具有box collider2D的瓷砖中穿透.i也会将碰撞属性从离散变为连续但是没有解决我的问题。

2 个答案:

答案 0 :(得分:-1)

您可以尝试从Edit-> ProjectSettings-> Time缩短固定时间步长。这是FixedUpdate的时间间隔。

Look Unity Life Cycle from here

And look Time management on Unity

Timestep影响FixedUpdate和OnCollision *方法的时间间隔以及与FixedUpdate在同一周期内的其他方法

答案 1 :(得分:-1)

在刚体上将CollisionDetectionMode设置为ContinuousContinuousDynamic

<强>文档 https://docs.unity3d.com/Manual/class-Rigidbody2D.html https://docs.unity3d.com/ScriptReference/CollisionDetectionMode2D.html

  

描述(3D版)也适用于2D

     

Rigidbody的碰撞检测模式。

     

将此用于set up a Rigidbody's for continuous collision detection,使用to prevent fast moving objects from passing through other objects without detecting collisions.为了获得最佳效果,请将此值设置为CollisionDetectionMode.ContinuousDynamic以用于快速移动的对象,and for other objects which these need to collide with, set it to CollisionDetectionMode.Continuous.这对物理性能有很大影响,因此,如果您对快速对象的碰撞没有任何问题,请将其设置为默认值CollisionDetectionMode.Discrete。连续碰撞Detection is only supported for Rigidbodies with Sphere-, Capusle- or BoxColliders.

仔细阅读,你会发现你需要将它们碰撞的对象设置为Continuous

这应该毫无疑问地解决您的问题,除非您的对手设置为触发器,在这种情况下您需要在OnTriggerEnter上检测OnCollisionEnter(同时请记住触发器不要触发其他触发器)