using Games.LogicObj; using Module.Log; using UnityEngine; /// /// 改变模型Shader /// Effect.txt 表格扩展参数说明 /// Param1 :EffectParam.txt中id值 身体Shader相关配置 /// Param2 :EffectParam.txt中id值 右武器Shader相关配置 /// Param3 :EffectParam.txt中id值 左武器Shader相关配置 /// Param4 :EffectParam.txt中id值 预留参数 /// EffectParam.txt 表格扩展参数说明 /// Param1 : Shader路径 /// Param2 : 材质属性 (对应EffectParam ID),生成ChangeMatPro /// public class Impact_ChangeModelShader : Impact_ChangeModelMaterialBase { public override EffectLogic.EffectType ImpactEffectType { get { return EffectLogic.EffectType.TYPE_CHANGESHADER; } } protected override int AddMod(string assetName, int modelPart) { var shader = Shader.Find(assetName); if (shader == null) LogModule.ErrorLog(string.Format("无法获得名称为{0}的Shader!", assetName)); return objCharacter.CreateShaderMod(0, shader, BodyToModelPart(bodyPart)); } protected override void RemoveMod(int token, int modelPart) { objCharacter.RemoveShaderMod(token, BodyToModelPart(bodyPart)); } }