You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

106 lines
3.0 KiB

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// 交通灯时间设置组件
/// </summary>
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<Slider>();
greenSlider = transform.Find("green").GetComponentInChildren<Slider>();
yellowSlider = transform.Find("yellow").GetComponentInChildren<Slider>();
redTxt = redSlider.transform.Find("valueShow").GetComponent<Text>();
greenTxt = greenSlider.transform.Find("valueShow").GetComponent<Text>();
yellowTxt = yellowSlider.transform.Find("valueShow").GetComponent<Text>();
//组件初始化
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;
}
}