コード例 #1
0
ファイル: MaterialManager.cs プロジェクト: zz0733/Fishing
        public NMaterial CreateMaterial()
        {
            NMaterial mat = new NMaterial(ShaderConfig.GetShader(shaderName));

            mat.mainTexture = texture.nativeTexture;
            if (texture.alphaTexture != null)
            {
                mat.EnableKeyword("COMBINED");
                mat.SetTexture("_AlphaTex", texture.alphaTexture);
            }
            if (_keywords != null)
            {
                foreach (string v in _keywords)
                {
                    mat.EnableKeyword(v);
                }
            }
            mat.hideFlags = DisplayOptions.hideFlags;

            return(mat);
        }
コード例 #2
0
        public NMaterial GetMaterial(uint frameId, uint context)
        {
            if (_items == null)
            {
                _items = new List <NMaterial>();
            }

            int       cnt   = _items.Count;
            NMaterial spare = null;

            for (int i = 0; i < cnt; i++)
            {
                NMaterial mat = _items[i];
                if (mat.frameId == frameId)
                {
                    if (mat.context == context)
                    {
                        return(mat);
                    }
                }
                else if (spare == null)
                {
                    spare = mat;
                }
            }

            if (spare != null)
            {
                spare.frameId = frameId;
                spare.context = context;
                return(spare);
            }
            else
            {
                NMaterial mat = _manager.CreateMaterial();
                if (_variants != null)
                {
                    foreach (string v in _variants)
                    {
                        mat.EnableKeyword(v);
                    }
                }
                mat.frameId = frameId;
                mat.context = context;
                _items.Add(mat);

                return(mat);
            }
        }
コード例 #3
0
        public NMaterial CreateMaterial()
        {
            Shader shader = ShaderConfig.Get(shaderName);

            if (shader == null)
            {
                Debug.LogWarning("FairyGUI: shader not found: " + shaderName);
                shader = Shader.Find("UI/Default");
            }
            NMaterial mat = new NMaterial(shader);

            mat.mainTexture = texture.nativeTexture;
            if (texture.alphaTexture != null)
            {
                mat.EnableKeyword("COMBINED");
                mat.SetTexture("_AlphaTex", texture.alphaTexture);
            }

            shader.hideFlags = DisplayOptions.hideFlags;
            mat.hideFlags    = DisplayOptions.hideFlags;

            return(mat);
        }
コード例 #4
0
ファイル: MaterialManager.cs プロジェクト: yinlei/Fishing
        public NMaterial CreateMaterial()
        {
            NMaterial mat = new NMaterial(ShaderConfig.GetShader(shaderName));
            mat.mainTexture = texture.nativeTexture;
            if (texture.alphaTexture != null)
            {
                mat.EnableKeyword("COMBINED");
                mat.SetTexture("_AlphaTex", texture.alphaTexture);
            }
            if (_keywords != null)
            {
                foreach (string v in _keywords)
                    mat.EnableKeyword(v);
            }
            mat.hideFlags = DisplayOptions.hideFlags;

            return mat;
        }
コード例 #5
0
        public NMaterial Get()
        {
            List <NMaterial> items;

            if (_manager.blendMode == BlendMode.Normal)
            {
                if (_items == null)
                {
                    _items = new List <NMaterial>();
                }
                items = _items;
            }
            else
            {
                if (_blendItems == null)
                {
                    _blendItems = new List <NMaterial>();
                }
                items = _blendItems;
            }

            int       cnt    = items.Count;
            NMaterial result = null;

            for (int i = 0; i < cnt; i++)
            {
                NMaterial mat = items[i];
                if (mat.frameId == _manager.frameId)
                {
                    if (mat.clipId == _manager.clipId && mat.blendMode == _manager.blendMode)
                    {
                        return(mat);
                    }
                }
                else if (result == null)
                {
                    result = mat;
                }
            }

            if (result != null)
            {
                result.frameId   = _manager.frameId;
                result.clipId    = _manager.clipId;
                result.blendMode = _manager.blendMode;
            }
            else
            {
                result = _manager.CreateMaterial();
                if (_variants != null)
                {
                    foreach (string v in _variants)
                    {
                        result.EnableKeyword(v);
                    }
                }
                result.frameId   = _manager.frameId;
                result.clipId    = _manager.clipId;
                result.blendMode = _manager.blendMode;
                items.Add(result);
            }

            return(result);
        }