Ejemplo n.º 1
0
    // 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);
        }
    }
Ejemplo n.º 2
0
    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);
    }
Ejemplo n.º 3
0
    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);
    }
Ejemplo n.º 4
0
    // 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-------
    }