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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章