public void ReplaceOriginalShader(MaterialEffectInfo info) { GOEEntityMaterial matComponent = GOEEntityComponent.Add <GOEEntityMaterial>(this); matComponent.ReplaceShader(info); matComponent.ChangeSharedMaterials(); }
internal void ReplaceShader(MaterialEffectInfo info) { if (mNewMatDic.Count <= 0) { // 创建新的材质,防止材质的泄露 // ChangeSharedMaterials(); } mIsOriginalshader = false; mCurShaderName = info.shaderName; MaterialEffect outEffect = null; if (!mMatEffectDic.TryGetValue(info.name, out outEffect)) { outEffect = new MaterialEffect(info, this.Entity); mMatEffectDic.Add(info.name, outEffect); outEffect.ReplaceMaterial(); } else { outEffect.mInfo = info; outEffect.ReplaceMaterial(true); } }
public void ReplaceShader(MaterialEffectInfo info) { GOEEntityMaterial matComponent = GOEEntityComponent.Add <GOEEntityMaterial>(this); matComponent.ReplaceShader(info); }
public MaterialEffect(MaterialEffectInfo info, Entity entity) { mInfo = info; mEntity = entity; Init(); }