我正在尝试使用OnCollisionEnter()在碰撞时禁用其刚体来制造粘性手榴弹.但是,当没有明显的碰撞发生时,OnCollisionEnter()会触发,如您在此图像中所看到的:https://imgur.com/w9KMEff.这会使我的手榴弹卡在空中.我怀疑这是由于物理回路与放大器之间缺乏同步造成的.渲染循环.另外,我的标准“不粘手榴弹”使用的是相同型号的&工作正常.
我已经尝试了以下方法:
>确认没有其他可能导致我手榴弹的对撞机
坚持下去
>改用OnTriggerEnter().结果会好一点,但问题是,一旦手榴弹进入障碍物或敌人内部,它就会开火太晚.
>添加刚体&对所有物体进行连续碰撞检测
>将Eliasar建议的PhysicsManager.DefaultContactOffset从0.01调整为0.001
>从“ PCM”切换到“传统联系人生成”
这些都不起作用,所以我感到有些绝望.在此先感谢您的帮助 !
我在碰撞时将手榴弹粘在上面的代码:
void OnCollisionEnter(Collision c) {
rigidbody.isKinematic = true;
transform.parent = c.transform;
}
解决方法:
对于您的对象比例,PhysicsManager.DefaultContactOffset可能设置得过高
根据此Unity forum post,如果对象的比例尺太小,则物理裕度可能会太高. OnCollisionEnter将在物理滴答声期间触发,并可能比您预期的更快地更新您手榴弹的位置.那可以解释为什么它会停留在接触点之外,而OnTriggerEnter会在以后处理1帧.
原文地址:https://codeday.me/bug/20191108/2005227.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。