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(); } } }
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(); } } }