| | |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | |
| | | namespace Snxxz.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, |
| | | } |
| | | } |
| | | using UnityEngine;
|
| | | using UnityEngine.UI;
|
| | | using System.Collections;
|
| | | using System.Collections.Generic;
|
| | |
|
| | | namespace Snxxz.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,
|
| | | }
|
| | | }
|