Unity3d 动画师未设置运行时实例化子对象的动画(UNITY)

Unity3d 动画师未设置运行时实例化子对象的动画(UNITY),unity3d,animation,Unity3d,Animation,我有一个代表房间的游戏对象。作为这个房间的孩子,我有三个角色。房间有一个animator组件,用于控制所有角色的同步动画 问题是我有另一个角色,它在运行时从一个预置中实例化,而这个角色没有动画 我尝试了几件事: //NOT WORKING IEnumerator Start() { room.SetBool("e8", true); yield return new WaitForSeconds(6); ... } //NOT WORKING IE

我有一个代表房间的游戏对象。作为这个房间的孩子,我有三个角色。房间有一个animator组件,用于控制所有角色的同步动画

问题是我有另一个角色,它在运行时从一个预置中实例化,而这个角色没有动画

我尝试了几件事:

//NOT WORKING
IEnumerator Start()
{
    room.SetBool("e8", true);

    yield return new WaitForSeconds(6);
    ...
}

//NOT WORKING
IEnumerator Start()
{
    room.Rebind();
    room.SetBool("e8", true);

    yield return new WaitForSeconds(6);
    ...
}

//WORKING
IEnumerator Start()
{
    yield return new WaitForEndOfFrame();
    room.Rebind();
    room.SetBool("e8", true);

    yield return new WaitForSeconds(6);
    ...

}
最后一次尝试正在工作,但角色看起来停止了一瞬间,并突然跳转到动画。我希望角色从一开始就像其他角色一样设置动画

我的动画师: 简单求解

使用当前动画设置,此行为是正常的。您需要使用任何“状态”部分更改当前动画制作者,因为当您使用“从其他状态更改状态”时,动画需要时间来更改状态。对于“开始”,Animator需要时间进行初始化,但若您要使用任何状态,这将起作用

尝试这样做:

进入不同的国家

您可以使用官方文档提供给您的内容:

然后,您可以添加从入口节点到其他状态的附加转换,以控制状态机是否应以其他状态开始

例如:


前两个
Start
方法是编译时错误,因为(IEnumerator)始终必须至少包含一个
yield
操作。如果您不一定需要协同程序,那么最好以void运行
Start
,这并不要求您屈服于帧的末尾。@remy只是我代码的一部分。在此之后,我有一个waitforseconds(6),但它对于我的具体问题并不重要,因此我没有包括它。我编辑我的问题。@Juan Lopez,你能和你的动画师一起附上截图吗?因为这总是取决于你是怎么做的@洋葱粉