我正在尝试使用滑块来控制场景中的动画。我需要滑块的长度来匹配动画的长度,当我擦洗滑块时,动画应该播放相应的部分。
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);
}
我还把它放在我的滑块组件上的值更改部分,但两者仍然不同步。我做错了什么/错过了什么?
修改的 更新了代码示例并删除了错误
答案 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);
}