我是团结的新手......问题是,当我的2D物体以越来越快的速度向下移动时,它会在覆盖somme距离之后从具有box collider2D的瓷砖中穿透.i也会将碰撞属性从离散变为连续但是没有解决我的问题。
答案 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设置为Continuous
或ContinuousDynamic
<强>文档强> 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
(同时请记住触发器不要触发其他触发器)