| | |
| | | using UnityEngine.UI; |
| | | using System.Collections.Generic; |
| | | |
| | | namespace vnxbqy.UI { |
| | | |
| | | public class OffsetImage2:Text { |
| | | public class OffsetImage2:Text { |
| | | |
| | | [SerializeField] |
| | | Vector2 m_Offset; |
| | | public Vector2 offset { |
| | | get { |
| | | return m_Offset; |
| | | } |
| | | set { |
| | | m_Offset = value; |
| | | |
| | | } |
| | | [SerializeField] |
| | | Vector2 m_Offset; |
| | | public Vector2 offset { |
| | | get { |
| | | return m_Offset; |
| | | } |
| | | |
| | | protected override void OnPopulateMesh(VertexHelper toFill) { |
| | | base.OnPopulateMesh(toFill); |
| | | List<UIVertex> vertexs = new List<UIVertex>(); |
| | | toFill.GetUIVertexStream(vertexs); |
| | | |
| | | if(vertexs == null || vertexs.Count == 0) { |
| | | return; |
| | | } |
| | | |
| | | toFill.Clear(); |
| | | var newVertexs = new List<UIVertex>(); |
| | | var index = 1 * 6 - 1; |
| | | for(int i = 0;i < vertexs.Count;i++) { |
| | | |
| | | var vertex = vertexs[i]; |
| | | if(i == index) { |
| | | newVertexs.AddRange(AddHexgon(vertexs[i - 5].position,new Vector2(offset.x,font.fontSize),Color.white)); |
| | | } |
| | | if(i > index) { |
| | | var position = vertex.position + new Vector3(offset.x,offset.y,0); |
| | | vertex.position = position; |
| | | } |
| | | newVertexs.Add(vertex); |
| | | } |
| | | |
| | | |
| | | var aaa= this.cachedTextGenerator.verts; |
| | | toFill.AddUIVertexTriangleStream(newVertexs); |
| | | LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform); |
| | | } |
| | | |
| | | private UIVertex[] AddHexgon(Vector3 _startPosition,Vector2 _offset,Color _color) { |
| | | |
| | | var hexgon = new UIVertex[4]; |
| | | var positions = new Vector3[4]; |
| | | positions[0] = _startPosition; |
| | | positions[1] = _startPosition + new Vector3(_offset.x,0,0); |
| | | positions[2] = _startPosition + new Vector3(_offset.x,-_offset.y,0); |
| | | positions[3] = _startPosition + new Vector3(0,-_offset.y,0); |
| | | |
| | | for(int i = 0;i < 4;i++) { |
| | | hexgon[i] = UIUtility.PackageUIVertexUV1(positions[i],Vector2.zero,_color); |
| | | } |
| | | |
| | | return hexgon; |
| | | set { |
| | | m_Offset = value; |
| | | |
| | | } |
| | | } |
| | | |
| | | protected override void OnPopulateMesh(VertexHelper toFill) { |
| | | base.OnPopulateMesh(toFill); |
| | | List<UIVertex> vertexs = new List<UIVertex>(); |
| | | toFill.GetUIVertexStream(vertexs); |
| | | |
| | | if(vertexs == null || vertexs.Count == 0) { |
| | | return; |
| | | } |
| | | |
| | | toFill.Clear(); |
| | | var newVertexs = new List<UIVertex>(); |
| | | var index = 1 * 6 - 1; |
| | | for(int i = 0;i < vertexs.Count;i++) { |
| | | |
| | | var vertex = vertexs[i]; |
| | | if(i == index) { |
| | | newVertexs.AddRange(AddHexgon(vertexs[i - 5].position,new Vector2(offset.x,font.fontSize),Color.white)); |
| | | } |
| | | if(i > index) { |
| | | var position = vertex.position + new Vector3(offset.x,offset.y,0); |
| | | vertex.position = position; |
| | | } |
| | | newVertexs.Add(vertex); |
| | | } |
| | | |
| | | |
| | | var aaa= this.cachedTextGenerator.verts; |
| | | toFill.AddUIVertexTriangleStream(newVertexs); |
| | | LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform); |
| | | } |
| | | |
| | | private UIVertex[] AddHexgon(Vector3 _startPosition,Vector2 _offset,Color _color) { |
| | | |
| | | var hexgon = new UIVertex[4]; |
| | | var positions = new Vector3[4]; |
| | | positions[0] = _startPosition; |
| | | positions[1] = _startPosition + new Vector3(_offset.x,0,0); |
| | | positions[2] = _startPosition + new Vector3(_offset.x,-_offset.y,0); |
| | | positions[3] = _startPosition + new Vector3(0,-_offset.y,0); |
| | | |
| | | for(int i = 0;i < 4;i++) { |
| | | hexgon[i] = UIUtility.PackageUIVertexUV1(positions[i],Vector2.zero,_color); |
| | | } |
| | | |
| | | return hexgon; |
| | | |
| | | } |
| | | |
| | |
| | | |
| | | |
| | | |
| | | |