| using UnityEngine;  | 
| using UnityEditor;  | 
|   | 
| using System.Collections.Generic;  | 
|   | 
| public class NpcResourcesBuilder : ResourcesBuilder  | 
| {  | 
|     public void BuildNpc(string modelName, string outName = null, int type = -1, bool isHighMesh = false)  | 
|     {  | 
|         if (modelName.Contains("A_Zs"))  | 
|         {  | 
|             return;  | 
|         }  | 
|   | 
|         BuildAnimationClip1(modelName);  | 
|         BuildAnimatorController(modelName, outName, type);  | 
|   | 
|         var showConfigs = ActorShowConfig.GetValues();  | 
|         NPCConfig _npcModel = null;  | 
|         foreach (var _item in showConfigs)  | 
|         {  | 
|             for (int i = 0; i < _item.showNpcs.Length; i++)  | 
|             {  | 
|                 if (_item.showNpcs[i] == 0)  | 
|                 {  | 
|                     continue;  | 
|                 }  | 
|                 _npcModel = NPCConfig.Get(_item.showNpcs[i]);  | 
|                 if (_npcModel == null)  | 
|                 {  | 
|                     continue;  | 
|                 }  | 
|                 if (_npcModel.MODE.Equals(outName))  | 
|                 {  | 
|                     BuildBossShowAnimatorController(outName);  | 
|                     break;  | 
|                 }  | 
|             }  | 
|         }  | 
|   | 
|         var realmConfigs = RealmConfig.GetValues();  | 
|         foreach (var _realmConfig in realmConfigs)  | 
|         {  | 
|             _npcModel = NPCConfig.Get(_realmConfig.BossID);  | 
|             if (_npcModel == null)  | 
|             {  | 
|                 continue;  | 
|             }  | 
|   | 
|             if (_npcModel.MODE.Equals(modelName))  | 
|             {  | 
|                 BuildRealmAnimatorController(modelName);  | 
|                 break;  | 
|             }  | 
|         }  | 
|   | 
|         BuildPrefab(modelName, outName, isHighMesh);  | 
|     }  | 
|   | 
|     public void BuildPrefab(string modelName, string outName, bool isHighMesh = false)  | 
|     {  | 
|         if (!IsBuildPrefab)  | 
|         {  | 
|             return;  | 
|         }  | 
|   | 
|         BuildPrefab(modelName, modelName, InstanceResourcesLoader.raceSuffix, outName, isHighMesh);  | 
|     }  | 
|   | 
|     public void BuildAnimationClip1(string modelName)  | 
|     {  | 
|         if (!IsBuildAnimationClip)  | 
|         {  | 
|             return;  | 
|         }  | 
|   | 
|         BuildAnimationClip(modelName);  | 
|     }  | 
|   | 
|     public void BuildAnimatorController(string modelName, string outName = null, int type = -1)  | 
|     {  | 
|         if (!IsBuildAnimatorController && !IsBuildAnimatorUIController)  | 
|         {  | 
|             return;  | 
|         }  | 
|   | 
|         if (type <= 0)  | 
|         {  | 
|             BuildAnimatorController(modelName, "Temple_AnimatorController_Mob", "animatorBuildConfig", outName);  | 
|         }  | 
|         else if (type == 1)  | 
|         {  | 
|             BuildAnimatorController(modelName, "Temple_AnimatorController_Pet", "animatorBuildConfig", outName);  | 
|         }  | 
|         else if (type == 2)  | 
|         {  | 
|             BuildAnimatorController(modelName, "Temple_AnimatorController_Horse", "animatorBuildConfig", outName);  | 
|         }  | 
|         else if (type == 3)  | 
|         {  | 
|             BuildAnimatorController(modelName, "Temple_AnimatorController_Guard", "animatorBuildConfig", outName);  | 
|         }  | 
|   | 
|         if (ResourcesBuilder.IsBuildAnimatorUIController)  | 
|         {  | 
|             BuildAnimatorController(modelName, "Temple_AnimatorController_UI", "animatorBuildConfig", outName);  | 
|         }  | 
|     }  | 
|   | 
|     public void BuildBossShowAnimatorController(string modelName)  | 
|     {  | 
|         if (!IsBuildAnimatorController)  | 
|         {  | 
|             return;  | 
|         }  | 
|   | 
|         BuildAnimatorController(modelName, "Temple_AnimatorController_BossShow", "animatorBuildConfig_BossShow");  | 
|     }  | 
|   | 
|     public void BuildRealmAnimatorController(string modelName)  | 
|     {  | 
|         if (!IsBuildAnimatorController)  | 
|         {  | 
|             return;  | 
|         }  | 
|   | 
|         BuildAnimatorController(modelName, "Temple_AnimatorController_Realm", "animatorBuildConfig_Realm");  | 
|     }  | 
|   | 
|     protected override void OnSetupRenderer(string resPath, string resName, ref Renderer _renderer)  | 
|     {  | 
|         string _texturePath = string.Format("Assets/ART/Role/{0}/Materials/{1}.png", resPath, resName);  | 
|         string _materialPath = string.Format("Assets/ART/Role/{0}/Materials/{1}.mat", resPath, resName);  | 
|   | 
|         // 设置为不产生阴影并且不接受阴影  | 
|         _renderer.receiveShadows = false;  | 
|         _renderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;  | 
|   | 
|         // 设置材质  | 
|         _renderer.sharedMaterial = AssetDatabase.LoadAssetAtPath<Material>(_materialPath);  | 
|         _renderer.sharedMaterial.shader = Shader.Find("Character/Normal Monster");  | 
|         Texture _texture = AssetDatabase.LoadAssetAtPath<Texture>(_texturePath);  | 
|         _renderer.sharedMaterial.SetTexture("_MainTex", _texture);  | 
|     }  | 
| } |