免费网站建设下载做竞价推广大概多少钱
原理
接口:
public void Play(string stateName, int layer = -1, float normalizedTime = float.NegativeInfinity);
参数 | 含义 |
---|---|
stateName | 动画状态机的某个状态名字 |
layer | 第几层的动画状态机,-1 表示播放第一个状态或者第一个哈希到的状态 |
normalizedTime | 从state动画进度的百分比(<100%)开始播放到结束 |
Unity Animator.Play 详解
案例
-
基于 Animator 制作一个Cube旋转的帧动画
-
在 Cube 上实现调用 Play(stateName,layer,normalizedTime) 脚本
using UnityEngine; using UnityEngine.UI;public class BoxAnimator : MonoBehaviour {public Animator animator;public Button btn1;public Button btn2;public const float Percentage1 = 0.3f;public const float Percentage2 = 0.7f;void OnEnable() {btn1.onClick.AddListener(() => animator.Play("Rotate",-1, Percentage1));btn2.onClick.AddListener(() => animator.Play("Rotate",-1, Percentage2));}void OnDisable() {btn1.onClick.RemoveAllListeners();btn2.onClick.RemoveAllListeners();} }
脚本挂在 cube 上,设置两个按钮分别从 30% 、70% 开始播放动画直到结束动画 -
看运行效果,可以选中 cube 查看动画状态机是如何播放的,方便理解