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,
|
}
|
}
|