Пример #1
0
        // Update is called once per frame
        void Update()
        {
            if (VolumeStatus != VolumeStatuses.Static)
            {
                if (FadeTimeLeft > 0)
                {
                    FadeTimeLeft -= Time.deltaTime;
                }
            }

            switch (VolumeStatus)
            {
            case VolumeStatuses.FadingIn:
                if (FadeTimeLeft <= 0)
                {
                    OnFadeInComplete();
                }
                else
                {
                    float t = FadeTimeLeft / MaxFadeTime;
                    SetSpeakerVolume(OrigFadeVolume + (DestFadeVolume - OrigFadeVolume) * EnsoHelpers.CalculateEqualPowerCrossfade(t, true));
                }
                break;

            case VolumeStatuses.FadingOut:
                if (FadeTimeLeft <= 0)
                {
                    OnFadeOutComplete();
                }
                else
                {
                    float t = FadeTimeLeft / MaxFadeTime;
                    SetSpeakerVolume(OrigFadeVolume * EnsoHelpers.CalculateEqualPowerCrossfade(t, false));
                }
                break;
            }
        }