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