在编辑器中删除AI代理与从游戏对象中生成它之间的差异

时间:2016-03-23 22:20:48

标签: unity3d

我在产生AI方面遇到了一些问题。我制作了一个预制件,当你在编辑器中将它添加到场景时,它可以正常工作;但是如果我在运动时在场景中产生相同的预制物;我在AI Agent上遇到了问题。

特别是在附加到AI Agent的ThirdPersonCharacter脚本上(我在Unity中使用标准的AI预制件)。代理继续执行空闲动画,并且II在" CheckGroundStatus()"功能;特别是行

m_animator.applyRootMotion=false;

导致GameObject向目标滑动,而不是转换为动画师中的步行动画状态。我知道这是因为GO无法接地,但我不明白同一个预制件,产生的和通过编辑器添加之间有什么不同。

非常确定问题必须非常简单,但我无法在这里解决问题。

1 个答案:

答案 0 :(得分:1)

好的,这很讨厌。

所以问题很简单:在ThirdPersonCharacter脚本中,您可以看到start函数中有代码。这个功能发生在以后;因此预制件在运行时可能没有完全固定,这可能会导致像我这样的问题。

要解决此问题,只需使用Awake()函数更改Start()函数即可。这将强制对撞机和组件首先初始化,然后原点和检查距离函数将首先运行;给预制件正确的初始化,然后才能正常运行。

希望这会有助于他人;在能够看到问题之前,我被困了几个小时。