我正在尝试使用OnCollisionEnter()
通过在碰撞时禁用其刚体来制造手榴弹。但是,OnCollisionEnter()
会在没有明显碰撞发生时触发,如您在此图中看到的:
这会使我的手榴弹留在空中。我怀疑这是由于物理循环与渲染循环之间缺乏同步。而且,我的标准“不粘手榴弹”使用相同的模型并且运行良好。
我已经尝试了以下方法:
确认没有其他对撞机可能引起我的手榴弹 “坚持下去”
改为使用OnTriggerEnter()
。结果要好一些,但问题是,一旦手榴弹进入障碍物或敌人内部,它就会开火太晚。
为所有对象添加刚体和连续碰撞检测
将PhysicsManager.DefaultContactOffset从0.01调整为0.001,由Eliasar建议
从“ PCM”切换到“传统联系人生成”
这些都不起作用,所以我感到有些绝望。预先感谢您的帮助!
我在碰撞时将手榴弹粘在上面的代码:
void OnCollisionEnter(Collision c) {
rigidbody.isKinematic = true;
transform.parent = c.transform;
}