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 nearNumlist = new List(); 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, } }