コード例 #1
0
    private void modeTimerEnded()
    {
        float randRoll = Random.Range(0f, 1f);

        switch (currentMode)
        {
        case lightMode.Off:
            if (randRoll < 0.5)
            {
                currentMode = lightMode.Firefly;
            }
            else
            {
                currentMode = lightMode.Spotlight;
            }
            break;

        case lightMode.Firefly:
            if (randRoll < 0.3)
            {
                currentMode = lightMode.Off;
            }
            else
            {
                currentMode = lightMode.Spotlight;
            }
            break;

        case lightMode.Spotlight:
            if (randRoll < 0.3)
            {
                currentMode = lightMode.Off;
            }
            else
            {
                currentMode = lightMode.Firefly;
            }
            break;

        default:
            currentMode = lightMode.Off;
            break;
        }
    }
コード例 #2
0
    void Update()
    {
        if (currentMode == lightMode.Spotlight)
        {
            if (previousMode != currentMode)
            {
                FireFlyParent.SetActive(false);
                SpotlightParent.SetActive(true);
                ModeTimer    = Random.Range(3f, 7f);
                previousMode = currentMode;
            }
        }
        else if (currentMode == lightMode.Firefly)
        {
            if (previousMode != currentMode)
            {
                SpotlightParent.SetActive(false);
                FireFlyParent.SetActive(true);
                ModeTimer    = Random.Range(10f, 15f);
                previousMode = currentMode;
            }
        }
        else
        {
            if (previousMode != currentMode)
            {
                SpotlightParent.SetActive(false);
                FireFlyParent.SetActive(false);
                ModeTimer    = Random.Range(0f, 3f);
                previousMode = currentMode;
            }
        }

        ModeTimer -= Time.deltaTime;

        if (ModeTimer <= 0f)
        {
            modeTimerEnded();
        }
    }
コード例 #3
0
 private void Start()
 {
     currentMode  = lightMode.Off;
     previousMode = lightMode.Off;
     ModeTimer    = 10f;
 }