internal protected override void UpdateTransform() { base.UpdateTransform(); Rect textureRect; if (_scrollRect.HasValue) { var sheetRect = new Rect( _textureScrollRect.x + _frame.textureBounds.x + _frame.textureAnchor.x, _textureScrollRect.y + _frame.textureBounds.y + _frame.textureAnchor.y, _textureScrollRect.width, _textureScrollRect.height); textureRect = sheetRect.GetIntersection(_frame.textureBounds); } else { textureRect = _frame.textureBounds; } var anchorPoint = new Vector2( anchor.x / _frame.textureScale + _frame.textureAnchor.x, anchor.y / _frame.textureScale + _frame.textureAnchor.y); var flip = TextureFlip.NONE; if (_flipHorizontal) { flip |= TextureFlip.HORIZONTAL; } if (_flipVertical) { flip |= TextureFlip.VERTICAL; } var texture = _frame.texture; var textureScale = _frame.textureScale; var textureSize = new Vector2(texture.width, texture.height); var globalMatrix = MatrixUtil.CreateScale2D(textureScale) * compositeMatrix; _quad.UpdateTransform(ref globalMatrix, ref textureRect, ref textureSize, ref anchorPoint, flip); }