三国卡牌客户端基础资源仓库
yyl
9 小时以前 cec146fc3fe287928e075c79ece20a20a9b16b20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TextUnline : MaskableGraphic {
 
    private RectTransform target;
 
    private bool isChanged = false;
 
    protected override void Awake()
    {
        if (transform.parent != null) {
            target = transform.parent as RectTransform;
        }
    }
 
    private List<UIVertex> vertlist = new List<UIVertex>();
 
    protected override void OnPopulateMesh(VertexHelper vh)
    {
        vh.Clear();
        DrawUnderline(vh);
    }
 
    private void DrawUnderline(VertexHelper vh)
    {
        if (vertlist.Count < 1) return;
 
        for (int i = 0; i < vertlist.Count; i++) 
        {
            vh.AddVert(vertlist[i]);
        }
 
        for (int i = 0; i < vertlist.Count; i+=4) 
        {
            vh.AddTriangle(i, i + 1, i + 2);
            vh.AddTriangle(i + 1, i + 3, i + 2);
        }
    }
 
    public void SetUIVertex(Vector3 start,Vector3 end,float delta, float height,Color color)
    {
        UIVertex[] verts = new UIVertex[4];
        Vector3 pos = Vector3.zero;
        pos.x = start.x;pos.y = start.y + delta;
        verts[0].position = pos;
        pos.x = end.x;
        verts[1].position = pos;
        pos.x = start.x;pos.y = pos.y + height;
        verts[2].position = pos;
        pos.x = end.x;
        verts[3].position = pos;
 
        for (int i = 0; i < 4; i++) {
            verts[i].color = color;
            verts[i].uv0 = Vector2.zero;
            vertlist.Add(verts[i]);
        }
        isChanged = true;
    }
 
    private void Update()
    {
        if (target != null) {
            rectTransform.sizeDelta = target.sizeDelta;
            rectTransform.localPosition = Vector3.zero;
            rectTransform.pivot = target.pivot;
        }
        else {
            if (transform.parent != null) {
                target = transform.parent as RectTransform;
            }
        }
 
        if (isChanged) {
            SetAllDirty();
            isChanged = false;
        }
    }
 
    public void ClearVert()
    {
        vertlist.Clear();
        isChanged = true;
    }
}