using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// /// 交通灯时间设置组件 /// public class TraficTimeSet : MonoBehaviour { private Slider redSlider,greenSlider,yellowSlider=null; private Text redTxt, greenTxt, yellowTxt=null; private TraficTimeSet paterner=null; private bool isStart = false; public float redTime, greenTime, yellowTime; private void Start() { //组件赋值 redSlider = transform.Find("red").GetComponentInChildren(); greenSlider = transform.Find("green").GetComponentInChildren(); yellowSlider = transform.Find("yellow").GetComponentInChildren(); redTxt = redSlider.transform.Find("valueShow").GetComponent(); greenTxt = greenSlider.transform.Find("valueShow").GetComponent(); yellowTxt = yellowSlider.transform.Find("valueShow").GetComponent(); //组件初始化 redSlider.maxValue = Pass2Const.maxRedTime; redSlider.minValue = Pass2Const.minRedTime; redSlider.value = redSlider.maxValue / 2f; redTxt.text = redSlider.value.ToString("0") + "秒"; greenSlider.maxValue = Pass2Const.maxGreenTime; greenSlider.minValue = Pass2Const.minGreenTime; greenSlider.value = greenSlider.maxValue / 2f; greenTxt.text = greenSlider.value.ToString("0") + "秒"; yellowSlider.maxValue = Pass2Const.maxYellowTime; yellowSlider.minValue = Pass2Const.minYellowTime; yellowSlider.value = yellowSlider.maxValue / 2f; yellowTxt.text = yellowSlider.value.ToString("0") + "秒"; redTime = redSlider.value; greenTime = greenSlider.value; yellowTime = yellowSlider.value; redSlider.onValueChanged.AddListener((float f) => { redTxt.text = redSlider.value.ToString("0") + "秒"; SetPaternerData(); }); greenSlider.onValueChanged.AddListener((float f) => { greenTxt.text = greenSlider.value.ToString("0") + "秒"; SetPaternerData(); }); yellowSlider.onValueChanged.AddListener((float f) => { yellowTxt.text = yellowSlider.value.ToString("0") + "秒"; SetPaternerData(); }); isStart = true; } public void SetPaterner(TraficTimeSet set) { this.paterner = set; set.paterner = this; } private void SetPaternerData() { if (paterner != null && paterner.isStart) { paterner.SetTimeData(this.redSlider.value, this.greenSlider.value, this.yellowSlider.value); } } public void SetTimeData(float red, float green, float yellow) { redSlider.value = red; greenSlider.value = green; yellowSlider.value = yellow; redTime = redSlider.value; greenTime = greenSlider.value; yellowTime = yellowSlider.value; } }