Ejemplo n.º 1
0
        /// <summary>
        /// Handler for GameStateMachine.GameStateChanged, toggles the menu
        /// </summary>
        /// <param name="prev">the previous GameState</param>
        /// <param name="next">the current/new GameState</param>
        private void OnGameStateChanged(GameState prev, GameState next)
        {
            if (transitionContainerInstance != null)
            {
                StopCoroutine(transitionContainerInstance);
            }

            switch (next)
            {
            case GameState.PHONE:
                togglePhone_sfx.setParameterByName("TogglePhone", 0); // Play unlock phone sfx
                UpdatePhoneState(PhoneState.HOME);
                timeIndicator.text = "Day " + TimeTracker.Instance.DaysElapsed + "   " +
                                     string.Format("{0:00}:{1:00}", TimeTracker.Instance.Hour, TimeTracker.Instance.Minute);
                transitionContainerInstance = TransitionContainer(true);
                StartCoroutine(transitionContainerInstance);
                togglePhone_sfx.start();
                break;

            default:
                if (prev == GameState.PHONE)
                {
                    togglePhone_sfx.setParameterByName("TogglePhone", 1); // Play lock phone sfx
                    transitionContainerInstance = TransitionContainer(false);
                    StartCoroutine(transitionContainerInstance);
                    togglePhone_sfx.start();
                }
                else if (containerPrimary.gameObject.activeInHierarchy)
                {
                    containerPrimary.gameObject.SetActive(false);
                }
                break;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Coroutine for transitioning the pause menu container alpha
        /// </summary>
        /// <param name="state">the state the container should end on</param>
        private IEnumerator TransitionContainer(bool state)
        {
            // initialize container for animation
            containerMenu.gameObject.SetActive(true);
            containerMenu.alpha = state ? 0 : 1;
            float t = 0;

            // loop for animation
            while (t <= transitionContainerState.animationLength)
            {
                yield return(new WaitForEndOfFrame());

                t += Time.unscaledDeltaTime;
                containerMenu.alpha = state ?
                                      Mathf.Lerp(0, 1, transitionContainerState.animationCurve.Evaluate(t / transitionContainerState.animationLength)) :
                                      Mathf.Lerp(1, 0, transitionContainerState.animationCurve.Evaluate(t / transitionContainerState.animationLength));
                ambienceMuffler_snapshot.setParameterByName("MufflerActive", containerMenu.alpha); // Intensity of muffler lerps with alpha
            }

            // ensure alpha is fully set (b/c of dt animation may not perfectly set to 1) if active, or deactivate in hierarchy if inactive
            if (state)
            {
                ambienceMuffler_snapshot.setParameterByName("MufflerActive", 1.0f);
                containerMenu.alpha = 1;
            }
            else
            {
                ambienceMuffler_snapshot.setParameterByName("MufflerActive", 0.0f);
                containerMenu.gameObject.SetActive(false);
            }
        }
Ejemplo n.º 3
0
        public void SetParameter(string name, float value, bool ignoreseekspeed = false)
        {
            if (Settings.Instance.StopEventsOutsideMaxDistance && IsActive)
            {
                ParamRef cachedParam = cachedParams.Find(x => x.Name == name);

                if (cachedParam == null)
                {
                    FMOD.Studio.PARAMETER_DESCRIPTION paramDesc;
                    eventDescription.getParameterDescriptionByName(name, out paramDesc);

                    cachedParam      = new ParamRef();
                    cachedParam.ID   = paramDesc.id;
                    cachedParam.Name = paramDesc.name;
                    cachedParams.Add(cachedParam);
                }

                cachedParam.Value = value;
            }

            if (instance.isValid())
            {
                instance.setParameterByName(name, value, ignoreseekspeed);
            }
        }
Ejemplo n.º 4
0
 public void SetParameter(string name, float value, bool ignoreseekspeed = false)
 {
     if (instance.isValid())
     {
         instance.setParameterByName(name, value, ignoreseekspeed);
     }
 }
Ejemplo n.º 5
0
        private void UpdateDelayNetwork()
        {
            float centerHitDistance = audioRaycaster.DirectionalRaycast(SonigonAudioRaycaster.AudioReflectionDirection.Center);

            float frontLeftHitDistance  = audioRaycaster.DirectionalRaycast(SonigonAudioRaycaster.AudioReflectionDirection.FrontLeft);
            float frontRightHitDistance = audioRaycaster.DirectionalRaycast(SonigonAudioRaycaster.AudioReflectionDirection.FrontRight);

            float backLeftHitDistance  = audioRaycaster.DirectionalRaycast(SonigonAudioRaycaster.AudioReflectionDirection.BackLeft);
            float backRightHitDistance = audioRaycaster.DirectionalRaycast(SonigonAudioRaycaster.AudioReflectionDirection.BackRight);

            float up = audioRaycaster.DirectionalRaycast(SonigonAudioRaycaster.AudioReflectionDirection.Up);

            FMOD.Studio.EventInstance instance = delayNetworkSnapshot.EventInstance;
            instance.setParameterByName("Delay_Center", centerHitDistance);
            instance.setParameterByName("Delay_FrontLeft", frontLeftHitDistance);
            instance.setParameterByName("Delay_FrontRight", frontRightHitDistance);
            instance.setParameterByName("Delay_BackLeft", backLeftHitDistance);
            instance.setParameterByName("Delay_BackRight", backRightHitDistance);
        }
 /// <summary>
 /// Play ambience in FMOD with defined Fade Time.
 /// </summary>
 /// <param name="ambienceEvent"></param>
 /// <param name="fadeTime"></param>
 public void PlayAmbience(string ambienceEvent, float fadeTime)
 {
     currentAmbienceEvent = ambienceEvent;
     ambience             = FMODUnity.RuntimeManager.CreateInstance(ambienceEvent);
     ambience.setParameterByName("Fade In", fadeTime);
     if (FMODUtils.IsInstance3D(ambience))
     {
         ambience.set3DAttributes(FMODUnity.RuntimeUtils.To3DAttributes(Camera.main.transform));
     }
     ambience.start();
 }
 /// <summary>
 /// Play music in FMOD with defined Fade Time.
 /// </summary>
 /// <param name="musicEvent"></param>
 /// <param name="fadeTime"></param>
 public void PlayMusic(string musicEvent, float fadeTime)
 {
     currentMusicEvent = musicEvent;
     music             = FMODUnity.RuntimeManager.CreateInstance(musicEvent);
     music.setParameterByName("Fade In", fadeTime);
     if (FMODUtils.IsInstance3D(music))
     {
         music.set3DAttributes(FMODUnity.RuntimeUtils.To3DAttributes(Camera.main.transform));
     }
     music.start();
 }
Ejemplo n.º 8
0
        void Update()
        {
            // visual smoke shooting out of the gun
            float currentAmmoRatio = m_Weapon.CurrentAmmoRatio;

            if (currentAmmoRatio != m_LastAmmoRatio)
            {
                m_OverheatMaterialPropertyBlock.SetColor("_EmissionColor",
                                                         OverheatGradient.Evaluate(1f - currentAmmoRatio));

                foreach (var data in m_OverheatingRenderersData)
                {
                    data.Renderer.SetPropertyBlock(m_OverheatMaterialPropertyBlock, data.MaterialIndex);
                }

                m_SteamVfxEmissionModule.rateOverTimeMultiplier = SteamVfxEmissionRateMax * (1f - currentAmmoRatio);
            }

            // cooling sound
            if (!coolingSoundPlaying &&
                currentAmmoRatio != 1 &&
                m_Weapon.IsWeaponActive &&
                m_Weapon.IsCooling)
            {
                coolingEvent.start();
                coolingSoundPlaying = true;
            }
            else if (coolingSoundPlaying &&
                     (currentAmmoRatio == 1 || !m_Weapon.IsWeaponActive || !m_Weapon.IsCooling))
            {
                coolingEvent.stop(FMOD.Studio.STOP_MODE.ALLOWFADEOUT);
                coolingSoundPlaying = false;
                return;
            }
            coolingEvent.setParameterByName("AmmoRatio", 1 - currentAmmoRatio);

            m_LastAmmoRatio = currentAmmoRatio;
        }
Ejemplo n.º 9
0
 /// <summary>
 /// Sets a param for the passed in fmod event
 /// </summary>
 /// <param name="fmodEvent"> The name of the fmod event we want to access </param>
 /// <param name="parameter"> The name of the param in our fmod event </param>
 /// <param name="value"> The value we want to set our param to </param>
 public void SetFmodParameterValue(FMOD.Studio.EventInstance fmodEvent, string parameter, float value)
 {
     //print("Set param " + parameter + ", dict value " + GetFmodParamFromDictionary(parameter) + " TO " + value);
     fmodEvent.setParameterByName(GetFmodParamFromDictionary(parameter), value);
 }
Ejemplo n.º 10
0
        public void SetParameter(string id, float value)
        {
            checkReady();

            Utilities.checkResult(_instance.setParameterByName(id, value));
        }
Ejemplo n.º 11
0
 public void SetParameter(string ename, float value)
 {
     instance.setParameterByName(ename, value);
 }
Ejemplo n.º 12
0
 void SetParameter(FMOD.Studio.EventInstance e, string name, float value)
 {
     e.setParameterByName(name, value);
 }
Ejemplo n.º 13
0
 public void EndBattleMusic()
 {
     _musicInstance.setParameterByName("End Battle Music", 1f);
 }
Ejemplo n.º 14
0
        /// <summary>
        /// handles the main minigame loop (bucket state switching) and timer on update
        /// </summary>
        private void Update()
        {
            if (BucketPlaced)
            {
                timer += Time.deltaTime;
                if (timer >= timeUntilStateChange)
                {
                    switch (manager.BucketFillState)
                    {
                    case BucketState.SNOWY:
                        waterBoiling_sfx.setParameterByName("BucketState", 1);
                        manager.BucketFillState = BucketState.WATER;
                        bucketImg.sprite        = manager.GetBucketSprite(BucketState.WATER);
                        break;

                    case BucketState.WATER:
                        waterBoiling_sfx.setParameterByName("BucketState", 2);
                        manager.BucketFillState = BucketState.BOILED;
                        bucketImg.sprite        = manager.GetBucketSprite(BucketState.BOILED);
                        break;

                    case BucketState.BOILED:
                        waterBoiling_sfx.setParameterByName("BucketState", 3);
                        manager.BucketFillState = BucketState.EMPTY;
                        bucketImg.sprite        = manager.GetBucketSprite(BucketState.EMPTY);
                        break;
                    }
                    timer = 0;
                }
                // animate sprite to warn that it will boil over and lose water
                else if (manager.BucketFillState == BucketState.BOILED)
                {
                    bucketImg.color = timer % 1.0f >= 0.5f ? Color.Lerp(Color.red, Color.white, timer % 0.5f) : Color.Lerp(Color.white, Color.red, timer % 0.5f);
                }

                // doubly checking the fill state is redundant but this and the text will be removed when sprite swapping is implemented
                BucketState nextState;
                switch (manager.BucketFillState)
                {
                case BucketState.SNOWY:
                    nextState = BucketState.WATER;
                    break;

                case BucketState.WATER:
                    nextState = BucketState.BOILED;
                    break;

                case BucketState.BOILED:
                default:
                    nextState = BucketState.EMPTY;
                    break;
                }
                if (manager.BucketFillState == BucketState.EMPTY)
                {
                    bucketTxt.text = "Water boiled over!";
                }
                else
                {
                    bucketTxt.text = string.Format("Time until {0}: {1:0.00}", nextState.ToString(), timeUntilStateChange - timer);
                }
            }
        }
Ejemplo n.º 15
0
 public static void SetParameter(FMOD.Studio.EventInstance eventInstance, string parameterName, float parameterValue)
 {
     eventInstance.setParameterByName(parameterName, parameterValue);
 }