标签: unity3d-mecanim

Unity动画播放预览但不播放游戏时播放

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

我的剑附有一个Animator组件:

看这里

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

看这里

动画在动画窗口的预览模式下播放得很好.但是当我运行我的游戏时,动画根本不会播放,剑只是静止而不是移动.

这个问题的原因是什么?

animation unity-game-engine animator unity3d-mecanim

5
推荐指数
1
解决办法
9085
查看次数

检索所有Animator状态并在代码中手动设置它们

我偶然发现了一些我从未想过的问题,但是...确实如此。我正在使用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状态之间的转换,那就太好了。(自动播放是应该在循环的下拉菜单中显示的唯一状态)

可以通过自定义动画控制器实现此功能吗?还是我错过了什么?

c# unity-game-engine unity5 unity3d-mecanim

3
推荐指数
1
解决办法
6779
查看次数