1

Unityforums 上的原始问题在这里

我一直在尝试让动画不仅可以减速和加速,还可以根据用户对我的 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:为澄清起见,链接的“重复”使用与我的问题无关的旧动画系统。在 Unity 5.xx 中的新动画系统 Mecanim 中,您无法直接访问动画,如所选答案所示。如第二个答案所示,也无法改变动画速度。

4

1 回答 1

2

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

在此处输入图像描述

在动画状态下,您可以让它观察一个参数并将其与动画的默认速度相乘。您需要在代码中做的就是类似

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

希望有帮助。

于 2017-01-20T03:37:36.553 回答