Animator-動畫狀態機,動畫控制器
1、手動創建(動畫控制器)AnimatorController:
Paste_Image.png
Paste_Image.png
還可以這樣打開:
Paste_Image.png
2、代碼創建(動畫控制器)AnimatorController:
using System.Collections;
using UnityEditor;
using UnityEditor.Animations;//5.0改變 UnityEditorInternal;并不能用了。
public class CreateAnimatorController : Editor
{
[MenuItem("ModelConfig/創建Controller")]
static void DoCreateAnimationAssets()
{
//創建Controller
AnimatorController animatorController = AnimatorController.CreateAnimatorControllerAtPath("Assets/animation.controller");
//得到它的Layer
AnimatorControllerLayer layer = animatorController.layers[0];
//將動畫保存到 AnimatorController中
AddStateTransition("Assets/Art Resources/Character/moster-002/basic/moster-002@run.FBX", layer);
AddStateTransition("Assets/Art Resources/Character/moster-002/basic/moster-002@stand.FBX", layer);
AddStateTransition("Assets/Art Resources/Character/moster-002/basic/moster-002@born.FBX", layer);
}
private static void AddStateTransition(string path, AnimatorControllerLayer layer)
{
AnimatorStateMachine sm = layer.stateMachine;
//根據動畫文件讀取它的AnimationClip對象
AnimationClip newClip = AssetDatabase.LoadAssetAtPath(path, typeof(AnimationClip)) as AnimationClip;
////取出動畫名子 添加到state里面
AnimatorState state = sm.AddState(newClip.name);
//5.0改變
state.motion = newClip;
Debug.Log(state.motion);
//把state添加在layer里面
AnimatorStateTransition trans = sm.AddAnyStateTransition(state);
}
}
補充:
inspector有一個debug模式,你在debug模式下修改一下Animation Type為0 就可以了
Unity有兩套Animation系統,一套是legacy,一套是Mecanim。
Debug模式下的Animation Type 0表示Mecanim,可以用于animator;1表示Legacy,用于animation組件。
一個人的路需要更多人的陪伴:歡迎加群: 134688909 一起交流,分享心得,獲取項目資源。