Unity 5.5.0f3在运行时向后播放动画

时间:2017-01-19 15:12:44

标签: c# animation unity3d hololens unity3d-mecanim

Unityforums上的原始问题here

我一直试图让动画不仅减速和加速,而且还根据我的Hololens应用程序的用户输入向后播放。我使用的是Mecanim系统,而不是传统的动画。

整个事情应该在运行时通过动态用户输入发生。

我知道可以通过脚本编写,因为我在一些Unity-Collaborate问题中失去了本地进度和一些文件之前就已经开始工作了。听起来很愚蠢,从那时起我就无法记住我的做法与我目前的做法有什么不同。

现在我正在操纵值Animator.speed,但这仅适用于值> = 0。

非常感谢任何帮助!

编辑:如果链接不起作用或对任何人都可见,这是我的代码:

private Animator anim;
 //...
 anim = gameObject.GetComponent<Animator>();
 //...
 public void OnManipulationUpdated(ManipulationEventData eventData)
     {
         if (anim.isActiveAndEnabled)
         {

             anim.speed = eventData.CumulativeDelta.x;
             anim.Play("KA_Cover_Anim");
             return;
         }
         //...
     }

Edit2:错误地标记为重复!链接的问题不考虑类似的问题,需要不同的解决方案

Edit3:为了澄清,链接的“复制”使用与我的问题无关的遗留动画系统。在Mecanim,Unity 5.xx中的新动画系统中,您无法直接访问Animations,如所选答案中所示。也没有可能改变动画速度,如第二个答案所示。

1 个答案:

答案 0 :(得分:2)

我不确定你的最终目标是什么,但你可以使用参数以不同的速度向后播放动画。

enter image description here

在动画状态下,您可以让它观看参数并将其与动画的默认速度相乘。你需要在代码中做的就像

animator.setFloat("Speed",-1.0f);

希望有所帮助。