少年修仙传客户端基础资源
client_Hale
2018-08-29 2ac9fe16eabc53e303d91a0bc21ea2f383459905
update 角色资源生成工具修改
3个文件已修改
73 ■■■■■ 已修改文件
Assets/Editor/Actor/ActorEditor.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Actor/NpcResourcesBuilder.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Actor/ResourcesBuilder.cs 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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)))
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);
        }
    }
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);