找回密码
 立即注册
查看: 176|回复: 0

unity 状态机Animator Control

[复制链接]
发表于 2022-10-27 17:42 | 显示全部楼层 |阅读模式
状态机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("test", 2);
            }
            else
            {
                m_Animator.SetFloat("test", 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窗口可以直接选择各种动画。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-7-2 06:55 , Processed in 0.087766 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表