unity 状态机Animator Control
状态机Animator场景 带动画的角色-add animator
资源
[*]Create-Animator Controller-Create State-Empty-Create State-Empty创建两个状态
[*]New State-改名一个Idle一个Run
[*]Mothion-Animation Clip(选中作用的角色就可以在Animation窗口点击播放动画)
[*]两个State的Mothiong分别挂Animation Clip
[*]Ctrl连选两个State右键创建条件Make Transition,做两次
[*]Parameters创建属性类型Float,命名test,初始值0
[*]点击创建的条件Transition-Conditions-+选中刚创建的属性test Greater 1,另一个Less 1
创建个脚本实现简单的角色状态动画根据鼠标点击进行切换,挂到角色上去即可
public class Test : MonoBehaviour
{
Animator m_Animator;
bool b;
// Start is called before the first frame update
void Start()
{
m_Animator = GetComponent<Animator>();
b = true;
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
if (b)
{
m_Animator.SetFloat(&#34;test&#34;, 2);
}
else
{
m_Animator.SetFloat(&#34;test&#34;, 0);
}
b = !b;
}
}
}有个明显的问题,前面的动作播放完才会触发条件播放后续的动作,而实际上动作切换不会等那么久。
blendtree
创建 Animator-Create State-From New Blend Tree
编辑 双击创建的BlendTree
Inspector-Motion添加Idle以及Run动画,分别设置Threshold为0和2
右键Entry-Set StateMachine Default State连接到刚创建的Blend Tree
直接用之前创建的脚本,可以实现动作的无缝切换。Animation窗口可以直接选择各种动画。
页:
[1]