Exemple #1
0
    void SetRainStat(RainStates rainState)
    {
        switch (rainState)
        {
        case RainStates.soft:
            rainBack.SetActive(true);
            rainMid.SetActive(false);
            rainFront.SetActive(false);
            rainBackTrans.Rotate(new Vector3(0, 0, 0));
            rainMidTrans.Rotate(new Vector3(0, 0, 0));
            rainFrotTrans.Rotate(new Vector3(0, 0, 0));
            isLiteRain  = true;
            isNoRain    = false;
            isHeavyRain = false;
            isMedRain   = false;

            break;

        case RainStates.med:
            rainBack.SetActive(true);
            rainMid.SetActive(true);
            rainFront.SetActive(false);
            rainBackTrans.Rotate(new Vector3(0, 0, 358));
            rainMidTrans.Rotate(new Vector3(0, 0, 356));
            rainFrotTrans.Rotate(new Vector3(0, 0, 0));

            isLiteRain  = false;
            isNoRain    = false;
            isHeavyRain = false;
            isMedRain   = true;
            break;

        case RainStates.hard:
            isLiteRain  = false;
            isNoRain    = false;
            isHeavyRain = true;
            isMedRain   = false;
            rainBack.SetActive(true);
            rainMid.SetActive(true);
            rainFront.SetActive(true);

            rainBackTrans.Rotate(new Vector3(0, 0, 358));
            rainMidTrans.Rotate(new Vector3(0, 0, 355));
            rainFrotTrans.Rotate(new Vector3(0, 0, 337));
            break;

        case RainStates.none:
            isLiteRain  = false;
            isNoRain    = true;
            isHeavyRain = false;
            isMedRain   = false;
            rainBack.SetActive(false);
            rainMid.SetActive(false);
            rainFront.SetActive(false);
            rainBackTrans.Rotate(new Vector3(0, 0, 0));
            rainMidTrans.Rotate(new Vector3(0, 0, 0));
            rainFrotTrans.Rotate(new Vector3(0, 0, 0));
            break;
        }
    }
Exemple #2
0
    void UpdateState()
    {
        WindTrait[] windTraits = GetWindTraits();
        if (windTraits != null)
        {
            direction = Vector3.zero;
            foreach (WindTrait trait in windTraits)
            {
                direction += trait.GetWindVector();
            }

            direction /= windTraits.Length;
        }
        if (lastRainState != currentRainState)
        {
            currentRainParticleSystem.Stop();
            switch (currentRainState)
            {
            case RainStates.noRain:
                currentRainParticleSystem = null;
                break;

            case RainStates.LightRain:
                currentRainParticleSystem = rainParticleSystems[0];
                break;

            case RainStates.HeavyRain:
                currentRainParticleSystem = rainParticleSystems[1];
                break;

            case RainStates.StormRain:
                currentRainParticleSystem = rainParticleSystems[2];
                thunderStrikingCoroutine  = StartCoroutine("RainDownThunder");
                break;

            default:
                break;
            }
            currentRainParticleSystem.Play();
        }
        lastRainState = currentRainState;
    }
Exemple #3
0
 public void ChangeRain(RainStates rain)
 {
     SetRainStat(rain);
 }