统一创建动画擦洗器

时间:2016-02-01 13:01:50

标签: c# animation unity3d

我正在尝试创建一个用于在Unity中展示3D动画模型的滑块。

我有一个可以更新动画当前帧的地方,但是在播放动画帧时不会更新滑块。

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class NewAnimController : MonoBehaviour {

    public Slider slider;
    public Animator animator;

    private AnimationState anim;

    void Start()
    {
        animator.speed = 0.0001f;
        slider.onValueChanged.AddListener(OnValueChanged);
        anim = GetComponent<Animation>()["Take 001"];

    }

    void Update ()
    {
        anim.time = slider.value;
    }

    public void OnValueChanged(float changedValue)
    {
        animator.speed = 0.0001f;
        animator.Play("Take 001", -1, slider.normalizedValue);
    }

请帮忙。非常感谢

1 个答案:

答案 0 :(得分:2)

这在普通的Unity.UI(2016)......

中非常简单

1 - 点击“添加画布”

2 - 点击“添加滑块”

3 - Update中的一行代码 ...

GetComponent<Slider>.value = .. your animation time ..

就是这样!

如果您更喜欢不同的滑块旋钮,只需拖动其他图像即可。在编辑器中根据需要更改滑块宽度,颜色等。

请注意,对于未来的读者来说,获得动画时间似乎通常是

float t = animator.GetCurrentAnimatorStateInfo(0).normalizedTime;