From 2ac9fe16eabc53e303d91a0bc21ea2f383459905 Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期三, 29 八月 2018 12:16:45 +0800
Subject: [PATCH] update 角色资源生成工具修改

---
 Assets/Editor/Actor/ResourcesBuilder.cs    |   30 ++++++++++----
 Assets/Editor/Actor/NpcResourcesBuilder.cs |   24 +++++++-----
 Assets/Editor/Actor/ActorEditor.cs         |   19 ++++++++-
 3 files changed, 51 insertions(+), 22 deletions(-)

diff --git a/Assets/Editor/Actor/ActorEditor.cs b/Assets/Editor/Actor/ActorEditor.cs
index 79e4e63..1b48b6a 100644
--- a/Assets/Editor/Actor/ActorEditor.cs
+++ b/Assets/Editor/Actor/ActorEditor.cs
@@ -15,6 +15,15 @@
         _window.Show();
     }
 
+    private enum BuildNpcType
+    {
+        Npc,
+        Pet,
+        Horse
+    }
+
+    private BuildNpcType m_NpcType;
+
     private bool m_GenerateNoExist = false;
     private bool m_GenerateAnimationClip = false;
     private bool m_GenerateController = false;
@@ -23,6 +32,7 @@
     private int m_ModelResID;
     private int m_NpcID;
     private string m_ModelName;
+    private string m_BuildName;
 
     private NpcResourcesBuilder m_NpcResBuilder;
     private ModelResourcesBuilder m_ModelResBuilder;
@@ -40,8 +50,11 @@
 
         EditorGUILayout.LabelField("# 鐢熸垚Npc瑙掕壊璧勬簮 #");
 
-        m_ModelName = EditorGUILayout.TextField("妯″瀷鍚嶇О", m_ModelName);
-
+        EditorGUILayout.BeginVertical();
+        m_ModelName = EditorGUILayout.TextField("鏉ユ簮鍚�", m_ModelName);
+        m_BuildName = EditorGUILayout.TextField("鐢熸垚鍚�", m_BuildName);
+        m_NpcType = (BuildNpcType)EditorGUILayout.EnumPopup("绫诲瀷:", m_NpcType);
+        EditorGUILayout.EndVertical();
         EditorGUILayout.BeginHorizontal();
         m_GenerateNoExist = GUILayout.Toggle(m_GenerateNoExist, "鍙敓鎴愪笉瀛樺湪鐨�");
         m_GeneratePrefab = GUILayout.Toggle(m_GeneratePrefab, "Prefab");
@@ -55,7 +68,7 @@
 
         if (GUILayout.Button("鍗曠嫭鐢熸垚", GUILayout.Height(24)))
         {
-            m_NpcResBuilder.BuildNpc(m_ModelName);
+            m_NpcResBuilder.BuildNpc(m_ModelName, m_BuildName, (int)m_NpcType);
         }
 
         if (GUILayout.Button("鐢熸垚鎵�鏈�", GUILayout.Height(24)))
diff --git a/Assets/Editor/Actor/NpcResourcesBuilder.cs b/Assets/Editor/Actor/NpcResourcesBuilder.cs
index 94adb29..5a98ad5 100644
--- a/Assets/Editor/Actor/NpcResourcesBuilder.cs
+++ b/Assets/Editor/Actor/NpcResourcesBuilder.cs
@@ -5,7 +5,7 @@
 
 public class NpcResourcesBuilder : ResourcesBuilder
 {
-    public void BuildNpc(string modelName)
+    public void BuildNpc(string modelName, string outName = null, int type = -1)
     {
         if (modelName.Contains("A_Zs"))
         {
@@ -13,7 +13,7 @@
         }
 
         BuildAnimationClip1(modelName);
-        BuildAnimatorController(modelName);
+        BuildAnimatorController(modelName, outName, type);
 
         var showConfigs = Config.Instance.GetAllValues<ActorShowConfig>();
         NPCConfig _npcModel = null;
@@ -51,17 +51,17 @@
             }
         }
 
-        BuildPrefab(modelName);
+        BuildPrefab(modelName, outName);
     }
 
-    public void BuildPrefab(string modelName)
+    public void BuildPrefab(string modelName, string outName)
     {
         if (!IsBuildPrefab)
         {
             return;
         }
 
-        BuildPrefab(modelName, modelName, InstanceResourcesLoader.raceSuffix);
+        BuildPrefab(modelName, modelName, InstanceResourcesLoader.raceSuffix, outName);
     }
 
     public void BuildAnimationClip1(string modelName)
@@ -74,20 +74,24 @@
         BuildAnimationClip(modelName);
     }
 
-    public void BuildAnimatorController(string modelName)
+    public void BuildAnimatorController(string modelName, string outName = null, int type = -1)
     {
         if (!IsBuildAnimatorController)
         {
             return;
         }
 
-        if (modelName.Contains("B_Cw"))
+        if (type <= 0)
         {
-            BuildAnimatorController(modelName, "Temple_AnimatorController_Pet", "animatorBuildConfig");
+            BuildAnimatorController(modelName, "Temple_AnimatorController_Mob", "animatorBuildConfig", outName);
         }
-        else
+        else if (type == 1)
         {
-            BuildAnimatorController(modelName, "Temple_AnimatorController_Mob", "animatorBuildConfig");
+            BuildAnimatorController(modelName, "Temple_AnimatorController_Pet", "animatorBuildConfig", outName);
+        }
+        else if (type == 2)
+        {
+            BuildAnimatorController(modelName, "Temple_AnimatorController_Horse", "animatorBuildConfig", outName);
         }
     }
 
diff --git a/Assets/Editor/Actor/ResourcesBuilder.cs b/Assets/Editor/Actor/ResourcesBuilder.cs
index 1726403..f90b949 100644
--- a/Assets/Editor/Actor/ResourcesBuilder.cs
+++ b/Assets/Editor/Actor/ResourcesBuilder.cs
@@ -108,13 +108,18 @@
 
     protected static List<MountPointInfo> m_MountPointInfoList = new List<MountPointInfo>();
 
-    public void BuildPrefab(string path, string resName, string suffix)
+    public void BuildPrefab(string path, string resName, string suffix, string outName = null)
     {
+        if (string.IsNullOrEmpty(outName))
+        {
+            outName = resName;
+        }
+
         string _absOriginalePath = string.Format("{0}/ART/Role/{1}/{2}.FBX", Application.dataPath, path, resName);
         string _originalAssetPath = string.Format("Assets/ART/Role/{0}/{1}.FBX", path, resName);
 
-        string _absAssetPath = string.Format("{0}Mob/{1}{2}.prefab", ResourcesPath.ResourcesOutPath, suffix, resName);
-        string _assetPath = string.Format("{0}Mob/{1}{2}.prefab", ResourcesPath.ResourcesOutAssetPath, suffix, resName);
+        string _absAssetPath = string.Format("{0}Mob/{1}{2}.prefab", ResourcesPath.ResourcesOutPath, suffix, outName);
+        string _assetPath = string.Format("{0}Mob/{1}{2}.prefab", ResourcesPath.ResourcesOutAssetPath, suffix, outName);
 
         string _acAbsAssetPath = string.Format("{0}Mob/{1}/{2}{3}.controller", ResourcesPath.ResourcesOutPath, path, AnimatorControllerLoader.controllerSuffix, path);
         string _acAssetPath = string.Format("{0}Mob/{1}/{2}{3}.controller", ResourcesPath.ResourcesOutAssetPath, path, AnimatorControllerLoader.controllerSuffix, path);
@@ -243,10 +248,12 @@
         }
 
         // 鍔犺浇鐗规晥
-        if (InstanceResourcesLoader.horseSuffix.Equals(suffix)
-         || resName.Contains("B_Cw"))
+        if (outName.StartsWith("M")
+         || outName.StartsWith("N")
+         || outName.StartsWith("B_")
+         || outName.StartsWith("Zq"))
         {
-            HandlerModelEffect("horseEffectConfig", null, resName, ref _prefab);
+            HandlerModelEffect("horseEffectConfig", null, outName, ref _prefab);
         }
         else if (InstanceResourcesLoader.raceSuffix.Equals(suffix))
         {
@@ -491,8 +498,13 @@
         AssetDatabase.Refresh();
     }
 
-    public static void BuildAnimatorController(string resName, string templeName, string configName)
+    public static void BuildAnimatorController(string resName, string templeName, string configName, string outName = null)
     {
+        if (string.IsNullOrEmpty(outName))
+        {
+            outName = resName;
+        }
+
         string _absAssetPath = string.Format("{0}Mob/{1}", ResourcesPath.ResourcesOutPath, resName);
 
         if (!Directory.Exists(_absAssetPath))
@@ -500,9 +512,9 @@
             Directory.CreateDirectory(_absAssetPath);
         }
 
-        _absAssetPath = string.Format("{0}Mob/{1}/{2}{3}.controller", ResourcesPath.ResourcesOutPath, resName, AnimatorControllerLoader.controllerSuffix, resName);
+        _absAssetPath = string.Format("{0}Mob/{1}/{2}{3}.controller", ResourcesPath.ResourcesOutPath, resName, AnimatorControllerLoader.controllerSuffix, outName);
 
-        string _assetPath = string.Format("{0}Mob/{1}/{2}{3}.controller", ResourcesPath.ResourcesOutAssetPath, resName, AnimatorControllerLoader.controllerSuffix, resName);
+        string _assetPath = string.Format("{0}Mob/{1}/{2}{3}.controller", ResourcesPath.ResourcesOutAssetPath, resName, AnimatorControllerLoader.controllerSuffix, outName);
         if (templeName.Equals("Temple_AnimatorController_BossShow"))
         {
             _absAssetPath = string.Format("{0}Mob/{1}/{2}{3}.controller", ResourcesPath.ResourcesOutPath, resName, AnimatorControllerLoader.controllerShowSuffix, resName);

--
Gitblit v1.8.0