2

我有一个 .fbx 格式的导入模型,带有预烘焙的动画。我想将物理应用于模型,但是播放动画似乎会干扰物理

当动画播放时,模型不会“坠落”/碰撞,但如果我在检查器中取消选中“动画”,我的模型会对应用于游戏对象的物理刚体/网格对撞机做出正确反应,但是当我重新打开动画模型移回其原始起始位置(但确实正确播放动画)

我究竟做错了什么?

编辑:这是我所说的“动画”复选框:

统一显示动画组件的检查器屏幕截图

4

2 回答 2

1

我对您所指的这个“动画”复选框有点不确定,但我有一些预感可以探索。

Unity 的物理和碰撞有多种形式,但并不是所有的都混合得很好。刚体适用于任何与物理相关的东西,但它附带了大量的字符串。例如,刚体的唯一碰撞与其他刚体(见底部)。听起来你想将你的物理东西作为玩家或敌人或其他东西移动。在这方面,RigidBodys 喜忧参半。

您需要使用的设置是刚体组件的“.isKinematic”。启用此选项会关闭刚体的物理模拟,而角色控制器或其他任何东西都将作为默认设置。查看此脚本以切换物理,以便您的角色可以推动东西:http ://answers.unity3d.com/questions/17566/how-can-i-make-my-player-a-charactercontroller-pus.html

要记住的另一件事是,您的模型不应在动画中在世界范围内变换。任何转换都需要由您的游戏行为来处理。

于 2013-02-04T19:03:07.763 回答
0

我能够通过遵循这个建议并制作一个空的游戏对象用作容器来解决它,将刚体/网格碰撞器/脚本添加到容器游戏对象中,然后将我的模型添加为该游戏对象的子对象。这样,脚本中应用的变换将应用于容器,并且动画不再影响模型的移动!

于 2013-02-05T15:26:37.643 回答