我为一个剑形游戏制作了一个简单的动画,当玩家角色静止不动时,它会不断缓慢地上下移动.
我的剑附有一个Animator组件:

Animator Controller也非常简单,此动画附加到我的默认状态:

动画在动画窗口的预览模式下播放得很好.但是当我运行我的游戏时,动画根本不会播放,剑只是静止而不是移动.
这个问题的原因是什么?
我偶然发现了一些我从未想过的问题,但是...确实如此。我正在使用unity 5.5编写visualiazion / simulation工具箱。
使用的模型已经导入,并且通过编辑器设置了动画剪辑。这是我的动画状态控制器的外观:
我想在DropdownMenu中显示AnimationStates。每当用户选择一项时,当前动画状态都应设置为所选状态。
eG用户选择了自动播放:将状态设置为剪辑自动播放,然后设置为SimpleRotate,然后设置为ComplexRotate,然后再次设置为自动播放(只是一个简单的循环)。
但是,如果用户选择“空闲”,“ ComplexRotate 0”或“ SimpleRotate 0”,则动画应播放一次,然后停留在剪辑的结尾。(就像我在动画控制器中所做的一样。
这是我想要的一个相当伪的版本:
//Retrieve all states to populate the dropdown:
List<AnimationState> states = myAnimationController.GetAllStates();
foreach(AnimationState state in states)
Dropdown.add(state.name)
//callback
OnDropdownIndexChanged(int item)
{
string stateName = ..... //removed for simplicity
myAnimationController.setState(stateName)
}
Run Code Online (Sandbox Code Playgroud)
最重要的是,如果我可以检查FROM和TO状态之间的转换,那就太好了。(自动播放是应该在循环的下拉菜单中显示的唯一状态)
可以通过自定义动画控制器实现此功能吗?还是我错过了什么?