由UI滑块控制的Unity 5 mecanim动画

时间:2015-09-27 13:38:15

标签: c# user-interface unity3d

我正在尝试使用滑块来控制场景中的动画。我需要滑块的长度来匹配动画的长度,当我擦洗滑块时,动画应该播放相应的部分。

 public Slider slider;
public Animator animator;

void Start()
{
    slider.onValueChanged.AddListener(OnValueChanged);
}

private void OnValueChanged(float changedValue)
{
    animator.speed = 0;
    animator.Play("yourAnimationName", -1, slider.normalizedValue);
}

我还把它放在我的滑块组件上的值更改部分,但两者仍然不同步。我做错了什么/错过了什么?

修改的 更新了代码示例并删除了错误

1 个答案:

答案 0 :(得分:1)

错误非常清楚。 Delegate必须有float参数。变化

private void OnValueChanged()

private void OnValueChanged(float changedValue)

<强>更新

不要将动画速度设置为0:

public Slider slider;
public Animator animator;

void Start()
{
    animator.speed = 0.00001f;
    slider.onValueChanged.AddListener(OnValueChanged);
}

private void OnValueChanged(float changedValue)
{
    animator.speed = 0.00001f;
    animator.Play("yourAnimationName", -1, slider.normalizedValue);
}