Biz*_*han 3 animation unity-game-engine
我有一个横向滚动的 2D 游戏。玩家(名为Default)是一只会说话的鸟,它的四肢都是会说话的鸟,移动的四肢之一是它的眼球(名为pupil),它有一个名为 的脚本EyeController。
我想要做的是:
EyeController脚本中的代码中完成的。您可以在我的问题末尾找到它)Any State问题是:情况 1 仅在没有动画播放时才有效。一旦动画开始,它就会停止用眼睛跟随。
虽然案例 2 总是有效,并且以某种方式防止学生从代码中改变。
我希望代码覆盖动画。
播放器具有 3 层动画。
正如你在下面看到的那样,在图层中的默认说话和默认眼球  状态下,瞳孔.位置是动画的Mouth。
Not Talking状态(Mouth图层中的默认状态,此处未显示其动画)具有空动画。
我关闭Write Defaults了所有动画。我知道它会重置动画师范围内的动画值。
当设置了一些触发器时,动画工作并且瞳孔正确地动画;但是,当我在脚本中更改 student.localPosition 时,它不会更改瞳孔的 localPosition。
EyeController脚本的一部分:
//sight controller calls this method in its FixedUpdate
public void LookAt(Vector3 direction)
{
    //transform.localPosition = direction;
    transform.localPosition = new Vector3(1, 1, 0);//just to make sure direction isn't 0,0,0
    UnityEngine.Debug.Log("change!");
}
//I tried Update() : same results
void FixedUpdate()
{
    //When I read localPosition it's always 0,0,0
    UnityEngine.Debug.Log(transform.localPosition);
}
数周以来,我一直在为这个问题而苦苦挣扎,但无法找到一种使其双向工作的方法。如果我删除瞳孔动画,我可以用代码为其设置动画,但我也需要动画,因为它是一个复杂的动画。
你试过使用LateUpdate()吗?如果我没记错的话,执行顺序类似于Update()> FixedUpdate()> Animation > LateUpdate()> Rendering。
否则你可以使用手动驱动的动画,AnimationClip.SampleAnimation但它会很重:)
| 归档时间: | 
 | 
| 查看次数: | 1160 次 | 
| 最近记录: |