动画

动画的播放控制

1.通过组件控制

导入模型后,在Project中新建一个Animator Controller,双击Animator Controller,将模型内部的动画文件拖入到Animator Controller的场景中,再将Animator Controller拖入到模型的Animator组件(如果没有该组件可以新创建一个)的Controller中,再点击运行模型即可动起来。

2.通过脚本控制

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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取消勾选,通过该代码可以实现在运行时,通过按设置的值实现相应的动画效果。

 

 

1
Animator.GetCurrentAnimatorStateInfo(0).normalizedTime

 

  获取动画当前播放的进度

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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;
        }
    }
}

  进度条控制动画播放

 

posted @   gatran  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示