diff options
Diffstat (limited to 'Assets/Scripts/Unit/RootMotion/Editor/RootMotionEditor.cs')
-rw-r--r-- | Assets/Scripts/Unit/RootMotion/Editor/RootMotionEditor.cs | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/Assets/Scripts/Unit/RootMotion/Editor/RootMotionEditor.cs b/Assets/Scripts/Unit/RootMotion/Editor/RootMotionEditor.cs index 734e0ce0..61c60306 100644 --- a/Assets/Scripts/Unit/RootMotion/Editor/RootMotionEditor.cs +++ b/Assets/Scripts/Unit/RootMotion/Editor/RootMotionEditor.cs @@ -7,9 +7,16 @@ using UnityEditor; public class RootMotionEditor : EditorWindow
{
- static string s_AnimFolder = "Assets/Art/Animations/";
+ static string unitFolder;
+ static string unitAnimationDataFolder { get { return unitFolder + "AnimationData/"; } }
+ static string unitRootMotionFolder { get { return unitFolder + "RootMotion/"; } }
+ static string unitAnimationClipFolder { get { return unitFolder + "AnimationClip/"; } }
+ static string unitDataFolder { get { return unitFolder + "UnitData/"; } }
+
+
+// static string s_AnimFolder = "Assets/Art/Animations/";
static string s_Controller = "Assets/Scripts/Unit/RootMotion/controller_rootmotion.controller";
- static string s_RootMotionDataFolder = "Assets/Data/RootMotionData/";
+ // static string s_RootMotionDataFolder = "Assets/Data/RootMotionData/";
GameObject m_Prefab;
string m_PrefabName { get { return m_Prefab.name; } }
@@ -71,6 +78,11 @@ public class RootMotionEditor : EditorWindow m_Prefab = prefab;
if(m_Prefab != null)
{
+ string path = AssetDatabase.GetAssetPath(prefab);
+ string folder = Path.GetDirectoryName(path).Replace('\\', '/');
+ folder = folder.Substring(0, folder.LastIndexOf('/'));
+ unitFolder = folder + "/";
+
m_Unit = PrefabUtility.InstantiatePrefab(m_Prefab) as GameObject;
InitializeUnit(m_Unit);
m_SelectAnimations.Clear();
@@ -102,7 +114,7 @@ public class RootMotionEditor : EditorWindow void CollectAnimations(string prefabName)
{
m_AnimList.Clear();
- string animFolder = s_AnimFolder + m_Prefab.name + "/";
+ string animFolder = unitAnimationClipFolder;
string[] animfiles = Directory.GetFiles(animFolder/*, "*.anim"*/);
if (animfiles != null && animfiles.Length > 0)
{
@@ -194,13 +206,13 @@ public class RootMotionEditor : EditorWindow ExportRootMotion(animation);
}
- EditorUtility.DisplayDialog("Export RootMotion", "目录 " + s_RootMotionDataFolder + m_Prefab.name, "OK");
+ EditorUtility.DisplayDialog("Export RootMotion", "目录 " + unitRootMotionFolder + m_Prefab.name, "OK");
}
void ExportRootMotion(string animation)
{
- string animPath = s_AnimFolder + m_PrefabName + "/" + animation + ".anim";
- string assetPath = s_RootMotionDataFolder + m_PrefabName + "/" + animation + ".asset";
+ string animPath = unitAnimationClipFolder + animation + ".anim";
+ string assetPath = unitRootMotionFolder + animation + ".asset";
AnimationClip clip = AssetDatabase.LoadAssetAtPath<AnimationClip>(animPath);
if(clip == null)
{
|