// Start is called before the first frame update void Start() { Random.InitState(Random.Range(int.MinValue, int.MaxValue)); trafficLight = (LIGHT_STATUS)(Random.Range(0, 2)); trafficCD = 0f; yellowCD = 0f; //spawn debug cube only in debug mode if (Debug.isDebugBuild) { cube = GameObject.CreatePrimitive(PrimitiveType.Cube); } }
public void GenerateRandomOrderSet() { //mTimesTotal LIGHT_STATUS [] Arr_AnserSet_Ori = new LIGHT_STATUS[cTimesTotal]; Arr_AnserSet_Rand = new LIGHT_STATUS[cTimesTotal]; for (int i = 0; i < cTimesTotal; i++) { if (i < cTimesTotal_Green) { Arr_AnserSet_Ori[i] = LIGHT_STATUS.GREEN; } else //if( i < cTimesTotal_Green + cTimesTotal_Red ) { Arr_AnserSet_Ori[i] = LIGHT_STATUS.RED; } RandomIndex.Add(i); } string Record = ""; for (int i = 0; i < cTimesTotal; i++) { int nRan = Random.Range(0, RandomIndex.Count); Arr_AnserSet_Rand[i] = Arr_AnserSet_Ori[RandomIndex[nRan]]; RandomIndex.Remove(RandomIndex[nRan]); if (Arr_AnserSet_Rand[i] == LIGHT_STATUS.RED) { Record += "R,"; } else { Record += "G,"; } //Debug.Log("Arr_AnserSet_Rand["+ i + "]="+Arr_AnserSet_Rand[i]); } xMain.Instance.WriteLogIntoFile(Record); }
void UpdateLightDisplay(LIGHT_STATUS status) { m_CurrentLight = status; if (m_CurrentLight == LIGHT_STATUS.YELLOW) { CarBillBoard.color = Color.yellow; CarBillBoard_Label.text = ""; return; } else if (m_CurrentLight == LIGHT_STATUS.GREEN) { CarBillBoard.color = Color.green; CarBillBoard_Label.text = "O"; } else if (m_CurrentLight == LIGHT_STATUS.RED) { CarBillBoard.color = Color.red; CarBillBoard_Label.text = "X"; } string sColorStr; if (m_CurrentLight == LIGHT_STATUS.RED) { sColorStr = "R"; } else { sColorStr = "G"; } xMain.Instance.WriteLogIntoFile(m_LogTag + "[" + (cTimesTotal - mTimesTotal) + "]:" + sColorStr + "," + xMain.Instance.GetGameCore().m_PathGenerator.m_sCurrentSegmentName, true); }
// Update is called once per frame void Update() { //-------DEBUG CUBE LIGHTS------- if (Debug.isDebugBuild) { cube.transform.position = this.transform.position; switch (trafficLight) { case LIGHT_STATUS.LIGHT_GREEN: cube.GetComponent <Renderer>().material.color = Color.green; break; case LIGHT_STATUS.LIGHT_RED: cube.GetComponent <Renderer>().material.color = Color.red; break; case LIGHT_STATUS.LIGHT_YELLOW: cube.GetComponent <Renderer>().material.color = Color.yellow; break; default: break; } } //-------DEBUG CUBE LIGHTS END------- //-------TRAFFIC LIGHT CONTROLLER------- if (TrafficLightObject != null) { LightReset(); switch (trafficLight) { case LIGHT_STATUS.LIGHT_RED: { TrafficLightObject.transform.GetChild(1).gameObject.SetActive(true); break; } case LIGHT_STATUS.LIGHT_YELLOW: { TrafficLightObject.transform.GetChild(2).gameObject.SetActive(true); break; } case LIGHT_STATUS.LIGHT_GREEN: { TrafficLightObject.transform.GetChild(3).gameObject.SetActive(true); break; } default: break; } } //-------TRAFFIC LIGHT CONTROLLER END------- //-------LIGHT LOGIC------- trafficCD += Time.deltaTime; if (trafficCD >= 10f) { if (trafficLight == LIGHT_STATUS.LIGHT_GREEN) { trafficLight = LIGHT_STATUS.LIGHT_YELLOW; } else if (trafficLight == LIGHT_STATUS.LIGHT_RED) { trafficLight = LIGHT_STATUS.LIGHT_GREEN; trafficCD = 0f; } else if (trafficLight == LIGHT_STATUS.LIGHT_YELLOW) { yellowCD += Time.deltaTime; if (yellowCD >= 3f) { trafficLight = LIGHT_STATUS.LIGHT_RED; trafficCD = 0f; yellowCD = 0f; } } return; } //-------LIGHT LOGIC END------- }