采样率(Samples):调节动画快慢,调小变慢
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test : MonoBehaviour { Animation ani; private void Awake() { ani = GetComponent<Animation>(); //ani.clip // K帧、K动画 AnimationState testState = ani["test"]; AnimationClip testClip = testState.clip; AnimationEvent testEvent = new AnimationEvent(); testEvent.functionName = "EventTest"; testEvent.time = 0.3f; testEvent.messageOptions = SendMessageOptions.DontRequireReceiver; // 设置 如果没有接收者也不会报错 testClip.AddEvent(testEvent); } void Start () { } void Update () { } public void EventTest() { } }
通过封装的对象获得Clip,AnimationClip的事件
AnimationEvent也是封装类,事件密闭类
状态机里单个片段的速度,默认不可修改
可以使用参数修改单个片段的速度,添加IdleSpeed,修改单个片段的参数
参数和Speed是相乘的关系,Speed * IdleSpeed
ani.speed则是设置所有动画的速度
镜像
整个播放时长
Has Exit Time:默认的过渡条件
播放到81%才会过渡到下一动画
融合的时间长度0.25秒,改成0,则无融合
Fixed Duration:固定过渡,在0.25秒内,动画是不允许被打断的
设置过渡条件,速度大于小于0.1
用子状态机盒子封装3个运动状态
返回子状态机上一层
方法二:设置连线到Move状态机的Run状态
设置连线到Base Layer上一层的Idle状态
查看连线的状态,选择对应的连线,可以设置对应的过渡条件
过渡条件:并且的关系
过渡条件:或者的关系,设置两条连线,一条添加速度,一条添加转向
蓝色的三角:动画的权重过渡,两个三角形的交点各占50%相互融合
2D的融合树:需要2个参数控制
修改数字,微调数据
2D简单方向:1个方向只有1个节点(片段)
2D的自由方向和2D的笛卡尔坐标系:1个方向只有多个节点(片段),可以由多个节点融合
Direct(很少用):通过多个参数控制人物的表情,多个参数控制一个状态