//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, August 23, 2017
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
using System.Collections.Generic;
|
|
|
public class OffsetImage2:Text {
|
|
[SerializeField]
|
Vector2 m_Offset;
|
public Vector2 offset {
|
get {
|
return m_Offset;
|
}
|
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;
|
|
}
|
|
}
|