c# - 在 unity c# 中更改运行时的动画速度

标签 c# animation unity3d

我想在程序运行期间将动画速度更改为我想要的速度。 我有一个 c# 脚本和动画 Controller 附加到游戏对象。统一动画的默认速度是1。我将动画的默认速度值设置为0.3f。在程序运行期间,我希望动画速度为 1

using UnityEngine;
using System.Collections;
public class wowBoard : MonoBehaviour {
    [SerializeField]
    Animator anim;
    bool changeSpeed;
   void Start()
   {
      anim=GetComponent<Animator>();
     playAnim();
     changeSpeed=false;
    }

   public void playAnim()
   {
     anim.SetBool("show",true);
   }

   void Update()
  {
     if(changeSpeed)
        playChangeSpeedAnim();

   }

 public void playChangeSpeedAnim()
 {
    anim.speed=1;
    anim.SetBool("show",true);
 }
}

即使 changeSpeed 的 bool 值是 true,动画速度也没有变为 1。

最佳答案

要操纵动画速度,您可以使用动画属性中的 Speed multiplier 参数字段。

如果您在动画器中选择动画,您将在检查器中看到:

如果单击“参数”复选框,将启用乘数选项。在Multiplier字段中,您可以选择一个浮点类型的参数,动画速度将设置参数的值。

因此,您可以创建一个名为speed 的新浮点参数,并通过脚本将动画的速度更改为X,只需执行anim.SetFloat("speed", X) ;

关于c# - 在 unity c# 中更改运行时的动画速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39524914/

相关文章:

c# - ExpectedException.NoExceptionMessage 中的字符串出现在哪里?

c# - 为什么 ASP.NET 找不到我的文本框?

javascript - SVG 成功消息动画

html - 无法以特定方式移动/动画我的 svg Logo

c# - 有什么方法可以将 Unity3d 带到前台?

C#:在单独的线程上预加载表单

c# - 使用 ASMX 并模拟方法

jquery - 播放动画时去除边框

c# - unity Physics2D.OverlapBox 总是返回false

c# - 如何以编程方式在unity3d中使用scenemanager通过loadlevel加载/获取场景变量