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

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