Example #1
0
        public static void SetTextureInfo(exSpriteBase _sprite, ref exTextureInfo _ti, exTextureInfo _newTi, bool _useTextureOffset, exSpriteType _spriteType)
        {
            exTextureInfo old = _ti;
            _ti = _newTi;
            if (_newTi != null) {
            if (_newTi.texture == null) {
                Debug.LogWarning("invalid textureInfo");
            }
            if (_spriteType == exSpriteType.Tiled) {
                if (old == null || ReferenceEquals(old, _newTi) || _newTi.width != old.width || _newTi.height != old.height) {
                    (_sprite as exISprite).UpdateBufferSize ();
                    _sprite.updateFlags |= exUpdateFlags.Vertex;    // tile数量可能不变,但是间距可能会改变
                }
            }
            else if (_spriteType == exSpriteType.Diced) {
                //if (_newTi.isDiced == false) {
                //    Debug.LogWarning ("The texture info is not diced!");
                //}
                (_sprite as exISprite).UpdateBufferSize ();
                _sprite.updateFlags |= exUpdateFlags.Vertex;
            }
            else {
                if (_sprite.customSize == false && (old == null || (_newTi.width != old.width || _newTi.height != old.height))) {
                    _sprite.updateFlags |= exUpdateFlags.Vertex;
                }
            }
            if (_useTextureOffset) {
                _sprite.updateFlags |= exUpdateFlags.Vertex;
            }
            _sprite.updateFlags |= exUpdateFlags.UV;  // 换了texture,UV也会重算,不换texture就更要改UV,否则没有换textureInfo的必要了。

            if (old == null || ReferenceEquals(old.texture, _newTi.texture) == false) {
                // texture changed
                _sprite.updateFlags |= (exUpdateFlags.Vertex | exUpdateFlags.UV);
                (_sprite as exISprite).UpdateMaterial();
            }
            }
        }
Example #2
0
        public static void SetTextureInfo(exSpriteBase _sprite, ref exTextureInfo _ti, exTextureInfo _newTi, bool _useTextureOffset, exSpriteType _spriteType)
        {
            exTextureInfo old = _ti;

            _ti = _newTi;
            if (_newTi != null)
            {
                if (_newTi.texture == null)
                {
                    Debug.LogWarning("invalid textureInfo");
                }
                if (_spriteType == exSpriteType.Tiled)
                {
                    if (old == null || ReferenceEquals(old, _newTi) || _newTi.width != old.width || _newTi.height != old.height)
                    {
                        (_sprite as exISprite).UpdateBufferSize();
                        _sprite.updateFlags |= exUpdateFlags.Vertex; // tile数量可能不变,但是间距可能会改变
                    }
                }
                else if (_spriteType == exSpriteType.Diced)
                {
                    //if (_newTi.isDiced == false) {
                    //    Debug.LogWarning ("The texture info is not diced!");
                    //}
                    (_sprite as exISprite).UpdateBufferSize();
                    _sprite.updateFlags |= exUpdateFlags.Vertex;
                }
                else
                {
                    if (_sprite.customSize == false && (old == null || (_newTi.width != old.width || _newTi.height != old.height)))
                    {
                        _sprite.updateFlags |= exUpdateFlags.Vertex;
                    }
                }
                if (_useTextureOffset)
                {
                    _sprite.updateFlags |= exUpdateFlags.Vertex;
                }
                _sprite.updateFlags |= exUpdateFlags.UV; // 换了texture,UV也会重算,不换texture就更要改UV,否则没有换textureInfo的必要了。

                if (old == null || ReferenceEquals(old.texture, _newTi.texture) == false)
                {
                    // texture changed
                    _sprite.updateFlags |= (exUpdateFlags.Vertex | exUpdateFlags.UV);
                    (_sprite as exISprite).UpdateMaterial();
                }
            }
        }