using System.Collections; 
 | 
using System.Collections.Generic; 
 | 
using UnityEngine; 
 | 
using UnityEngine.UI; 
 | 
  
 | 
public class HorizontalReversalImage : Image 
 | 
{ 
 | 
  
 | 
    protected override void OnPopulateMesh(VertexHelper vh) 
 | 
    { 
 | 
        base.OnPopulateMesh(vh); 
 | 
  
 | 
        if (!IsActive() || vh.currentVertCount == 0) 
 | 
        { 
 | 
            return; 
 | 
        } 
 | 
  
 | 
        var vertexs = new List<UIVertex>(); 
 | 
        vh.GetUIVertexStream(vertexs); 
 | 
  
 | 
        var uv05 = vertexs[4].uv0; 
 | 
        var uv1 = vertexs[2].uv0; 
 | 
        var uv23 = vertexs[1].uv0; 
 | 
        var uv4 = vertexs[0].uv0; 
 | 
  
 | 
        var reveralVertexs = new List<UIVertex>(); 
 | 
        reveralVertexs.Add(AmendUV0(vertexs[0], uv05)); 
 | 
        reveralVertexs.Add(AmendUV0(vertexs[1], uv1)); 
 | 
        reveralVertexs.Add(AmendUV0(vertexs[2], uv23)); 
 | 
        reveralVertexs.Add(AmendUV0(vertexs[3], uv23)); 
 | 
        reveralVertexs.Add(AmendUV0(vertexs[4], uv4)); 
 | 
        reveralVertexs.Add(AmendUV0(vertexs[5], uv05)); 
 | 
  
 | 
        vh.Clear(); 
 | 
        vh.AddUIVertexTriangleStream(reveralVertexs); 
 | 
    } 
 | 
  
 | 
    public UIVertex AmendUV0(UIVertex _vertex, Vector2 _uv0) 
 | 
    { 
 | 
        _vertex.uv0 = _uv0; 
 | 
        return _vertex; 
 | 
    } 
 | 
  
 | 
    public enum Align 
 | 
    { 
 | 
        Left, 
 | 
        Right, 
 | 
        Bottom, 
 | 
        Top, 
 | 
        Orthogon, 
 | 
    } 
 | 
} 
 |