我想在程序运行期间将动画速度更改为我想要的速度。 我有一个 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/