Esempio n. 1
0
        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);
            }
        }
Esempio n. 3
0
        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();
 }