9 private AnimationClip _animationClip;
10 private SerializedObject _serializedObject;
11 private SerializedProperty _animationClipSettings;
13 [MenuItem(
"Assets/Create/TriLib/MecanimAnimationClipTemplate")]
16 var editorWindow = (EditorWindow)GetWindow<MecanimAnimationClipEditor>();
22 _animationClip =
new AnimationClip();
23 _animationClip.name =
"NewMecanimAnimationClipTemplate";
24 _serializedObject =
new SerializedObject(_animationClip);
25 _animationClipSettings = _serializedObject.FindProperty(
"m_AnimationClipSettings");
28 private void OnDestroy()
30 if (!AssetDatabase.Contains(_animationClip))
32 DestroyImmediate(_animationClip);
38 EditorGUILayout.PropertyField(_serializedObject.FindProperty(
"m_Name"));
40 EditorGUILayout.PropertyField(_animationClipSettings.FindPropertyRelative(
"m_StartTime"));
41 EditorGUILayout.PropertyField(_animationClipSettings.FindPropertyRelative(
"m_StopTime"));
42 EditorGUILayout.PropertyField(_animationClipSettings.FindPropertyRelative(
"m_OrientationOffsetY"));
43 EditorGUILayout.PropertyField(_animationClipSettings.FindPropertyRelative(
"m_Level"));
44 EditorGUILayout.PropertyField(_animationClipSettings.FindPropertyRelative(
"m_CycleOffset"));
46 EditorGUILayout.PropertyField(_animationClipSettings.FindPropertyRelative(
"m_LoopTime"));
47 EditorGUILayout.PropertyField(_animationClipSettings.FindPropertyRelative(
"m_LoopBlend"));
48 EditorGUILayout.PropertyField(_animationClipSettings.FindPropertyRelative(
"m_LoopBlendOrientation"));
49 EditorGUILayout.PropertyField(_animationClipSettings.FindPropertyRelative(
"m_LoopBlendPositionY"));
50 EditorGUILayout.PropertyField(_animationClipSettings.FindPropertyRelative(
"m_LoopBlendPositionXZ"));
51 EditorGUILayout.PropertyField(_animationClipSettings.FindPropertyRelative(
"m_KeepOriginalOrientation"));
52 EditorGUILayout.PropertyField(_animationClipSettings.FindPropertyRelative(
"m_KeepOriginalPositionY"));
53 EditorGUILayout.PropertyField(_animationClipSettings.FindPropertyRelative(
"m_KeepOriginalPositionXZ"));
54 EditorGUILayout.PropertyField(_animationClipSettings.FindPropertyRelative(
"m_HeightFromFeet"));
56 if (GUILayout.Button(
"Create Template with given Settings"))
58 AssetDatabase.CreateAsset(_animationClip, $
"{AssetDatabase.GetAssetPath(Selection.activeObject)}/{FileUtils.SanitizePath(_animationClip.name)}.asset");
static void CreateMecanimAnimationClipTemplate()