少年修仙传客户端代码仓库
lcy
2024-12-16 a39c35fc6449430cd02bccb681c4a0a880e46cd9
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
 
namespace vnxbqy.UI
{
    public class FreeTimeCell : CellView
    {
        [SerializeField] Text timeText;
        [SerializeField] CanvasGroup canvas;
        [Header("时间的色值设定")]
        [SerializeField] Color32 selectColor = new Color32(255, 255, 255, 255);
        [SerializeField] Color32 unSelectColor = new Color32(255, 248, 0, 255);
        [Header("时间的字体大小设定")]
        [SerializeField] int selectFontSize = 30;
        [SerializeField] int unSelectFontSize = 25;
        [Header("递减的Alpha值")]
        [SerializeField] float reduceAlpha = 0.3f;
 
        TimeType timeType = TimeType.None;
       
        public void SetModel(TimeType type,int curNum,int selectNum = 0)
        {
            timeType = type;
            InitUI(curNum, selectNum);
        }
 
        private void InitUI(int curNum,int selectNum)
        {
            float posY = this.transform.position.y;
            timeText.text = curNum.ToString();
            if (curNum == selectNum)
            {
                timeText.color = selectColor;
                timeText.fontSize = selectFontSize;
                canvas.alpha = 1;
            }
            else
            {
                timeText.color = unSelectColor;
                timeText.fontSize = unSelectFontSize;
                SetNearNumlist(selectNum);
                for(int i = 0; i < nearNumlist.Count; i++)
                {
                    int index = i % 4;
                    if(nearNumlist[i] == curNum)
                    {
                        float alpha = reduceAlpha * (index + 1);
                        if (alpha < 0)
                        {
                            alpha = 0;
                        }
                        canvas.alpha = 1 - alpha;
                        break;
                    }
                }
            }
        }
 
        List<int> nearNumlist = new List<int>();
        private void SetNearNumlist(int selectNum)
        {
            nearNumlist.Clear();
            int nearNum = selectNum;
            switch (timeType)
            {
                case TimeType.Hour:
                    for(int i = 0; i < 4; i++)
                    {
                        nearNum = (nearNum + 1) % 24;
                        nearNumlist.Add(nearNum);
                    }
                    nearNum = selectNum;
                    for(int i = 0; i < 4; i++)
                    {
                        if(nearNum == 0)
                        {
                            nearNum = 24;
                        }
                        nearNum = nearNum - 1;
                        nearNumlist.Add(nearNum);
                    }
                    break;
                case TimeType.Minute:
                    for (int i = 0; i < 4; i++)
                    {
                        nearNum = (nearNum + 1) % 60;
                        nearNumlist.Add(nearNum);
                    }
                    nearNum = selectNum;
                    for (int i = 0; i < 4; i++)
                    {
                        if (nearNum == 0)
                        {
                            nearNum = 60;
                        }
                        nearNum = nearNum - 1;
                        nearNumlist.Add(nearNum);
                    }
                    break;
            }
        }
    }
 
    public enum TimeType
    {
        None,
        Hour,
        Minute,
    }
}