using UnityEngine; using UnityEditor; using TableConfig; using System.Collections.Generic; public class NpcResourcesBuilder : ResourcesBuilder { public void BuildNpc(string modelName) { if (modelName.Contains("A_Zs")) { return; } BuildAnimationClip1(modelName); BuildAnimatorController(modelName); var showConfigs = ConfigManager.Instance.GetAllValues(); NPCConfig _npcModel = null; foreach (var _item in showConfigs) { for (int i = 0; i < _item.showNpcs.Length; i++) { _npcModel = ConfigManager.Instance.GetTemplate(_item.showNpcs[i]); if (_npcModel == null) { continue; } if (_npcModel.MODE.Equals(modelName)) { BuildBossShowAnimatorController(modelName); break; } } } BuildPrefab(modelName); } public void BuildPrefab(string modelName) { if (!IsBuildPrefab) { return; } BuildPrefab(modelName, modelName, InstanceResourcesLoader.raceSuffix); } public void BuildAnimationClip1(string modelName) { if (!IsBuildAnimationClip) { return; } BuildAnimationClip(modelName); } public void BuildAnimatorController(string modelName) { if (!IsBuildAnimatorController) { return; } if (modelName.Contains("B_Cw")) { BuildAnimatorController(modelName, "Temple_AnimatorController_Pet", "animatorBuildConfig"); } else { BuildAnimatorController(modelName, "Temple_AnimatorController_Mob", "animatorBuildConfig"); } } public void BuildBossShowAnimatorController(string modelName) { if (!IsBuildAnimatorController) { return; } BuildAnimatorController(modelName, "Temple_AnimatorController_BossShow", "animatorBuildConfig_BossShow"); } 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(_materialPath); _renderer.sharedMaterial.shader = Shader.Find("Character/Normal Monster"); Texture _texture = AssetDatabase.LoadAssetAtPath(_texturePath); _renderer.sharedMaterial.SetTexture("_MainTex", _texture); } }