我正在尝试创建一个用于在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);
}
请帮忙。非常感谢
答案 0 :(得分:2)
这在普通的Unity.UI(2016)......
中非常简单1 - 点击“添加画布”
2 - 点击“添加滑块”
3 - Update
中的一行代码 ...
GetComponent<Slider>.value = .. your animation time ..
就是这样!
如果您更喜欢不同的滑块旋钮,只需拖动其他图像即可。在编辑器中根据需要更改滑块宽度,颜色等。
请注意,对于未来的读者来说,获得动画时间似乎通常是
float t = animator.GetCurrentAnimatorStateInfo(0).normalizedTime;