动画
动画的播放控制
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; } } } |
进度条控制动画播放
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了