动画
动画的播放控制
1.通过组件控制
导入模型后,在Project中新建一个Animator Controller,双击Animator Controller,将模型内部的动画文件拖入到Animator Controller的场景中,再将Animator Controller拖入到模型的Animator组件(如果没有该组件可以新创建一个)的Controller中,再点击运行模型即可动起来。
2.通过脚本控制
示例
using UnityEngine;
public class Test : MonoBehaviour
{
Animator am;
void Start()
{
am = transform.GetComponent<Animator>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Alpha0))
{
am.SetInteger("id", 0);
}
else if (Input.GetKeyDown(KeyCode.Alpha1))
{
am.SetInteger("id", 1);
}
else if (Input.GetKeyDown(KeyCode.Alpha2))
{
am.SetInteger("id", 2);
}
else if (Input.GetKeyDown(KeyCode.Alpha3))
{
am.SetInteger("id", 3);
}
else if (Input.GetKeyDown(KeyCode.Alpha4))
{
am.SetInteger("id", 4);
}
}
}
在Prooject中创建一个Animator Controller,将动画拖进Animator Controller中,在Animator中设置通过Any State设置动画的播放,在Parameter中设置一个名叫id的变量,点击Animater中的箭头,在Inspector中设置动漫所对应的值,并将Inspector>Setting>Can Transition To Self取消勾选,通过该代码可以实现在运行时,通过按设置的值实现相应的动画效果。
Animator.GetCurrentAnimatorStateInfo(0).normalizedTime
获取动画当前播放的进度
public class Juse : MonoBehaviour
{
public Animator ani;
public Slider slider;
void Start()
{
slider.onValueChanged.AddListener(SliderAni);
}
public void SliderAni(float value)
{
ani.Play("EnterVacum",0,value);
}
void Update()
{
if (Input.GetMouseButton(0))
{
}
else
{
slider.value = ani.GetCurrentAnimatorStateInfo(0).normalizedTime;
}
}
}
进度条控制动画播放

浙公网安备 33010602011771号