/// <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; } }
/// <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); } }
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); } }
public void SetParameter(string name, float value, bool ignoreseekspeed = false) { if (instance.isValid()) { instance.setParameterByName(name, value, ignoreseekspeed); } }
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(); }
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; }
/// <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); }
public void SetParameter(string id, float value) { checkReady(); Utilities.checkResult(_instance.setParameterByName(id, value)); }
public void SetParameter(string ename, float value) { instance.setParameterByName(ename, value); }
void SetParameter(FMOD.Studio.EventInstance e, string name, float value) { e.setParameterByName(name, value); }
public void EndBattleMusic() { _musicInstance.setParameterByName("End Battle Music", 1f); }
/// <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); } } }
public static void SetParameter(FMOD.Studio.EventInstance eventInstance, string parameterName, float parameterValue) { eventInstance.setParameterByName(parameterName, parameterValue); }