Unity4.x新动画系统Mecanim使用

1.首先导入模型及模型动画:,其中man02为不带动画的模型,man02@xx为带改模型带对应的动画的。

2.模型man02放入场景,设置模型:

然后设置avatar:

其他带动画的模型的Avatar设置:

3.创建一个角色控制器:

然后将该角色控制器赋给场景中的角色:


4.打开Animator视图:


5.设置Animator:


6.设置动画播放条件:

walk -> run:


run -> walk:


7.控制脚本:

using UnityEngine;
using System.Collections;

public class PlayGUI : MonoBehaviour
{
    public Transform transform;
    public GUIContent[] guiContents;
    private Animator animator;
    private string currentState = "";

    void Start()
    {
        animator = new Animator();
        animator = transform.GetComponent<Animator>();
    }

    void OnGUI()
    {
        GUILayout.BeginVertical("Box");
        for (int i = 0; i < guiContents.Length; i++)
        {
            if (GUILayout.Button(guiContents[i]))
            {
                currentState = guiContents[i].text;
            }
            AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);

            if (stateInfo.IsName("Base Layer.wait") && currentState.Equals("walk"))
            {
                animator.SetBool("WaitToWalk", true);
            }
            if (stateInfo.IsName("Base Layer.wait") && currentState.Equals("run"))
            {
                animator.SetBool("WaitToRun", true);
            }
            if (stateInfo.IsName("Base Layer.walk") && currentState.Equals("run"))
            {
                animator.SetBool("WalkToRun", true);
            }

            if (stateInfo.IsName("Base Layer.walk") && currentState.Equals("wait"))
            {
                animator.SetBool("WaitToWalk", false);
            }
            if (stateInfo.IsName("Base Layer.run") && currentState.Equals("wait"))
            {
                animator.SetBool("WaitToRun", false);
            }
            if (stateInfo.IsName("Base Layer.run") && currentState.Equals("walk"))
            {
                animator.SetBool("WalkToRun", false);
            }
        }
    }
}

将脚本挂到camera上:参数设置:

8.最终效果:


源工程分享:http://url.cn/M34hur

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值