/// <summary> /// Plays the emitter if it isn't playing already. /// </summary> public static void PlayEmitterIfNotPlaying(FMODUnity.StudioEventEmitter fmodComponent) { if (!fmodComponent.IsPlaying()) { fmodComponent.Play(); } }
void findTrackManager() { if (!fManager) { fManager = GameObject.Find("TrackManager"); emitter = fManager.GetComponent <FMODUnity.StudioEventEmitter>(); } }
private void OnEnable() { if (!helicopterSound) { helicopterSound = AudioManager.Instance.InitializeAudioOnObject(gameObject, "event:/helicopter"); } AudioManager.Instance.PlayEmitterOnce(helicopterSound); }
/// <summary> /// Overrides the StudioEventEmitter's min/max values to whatever the sound designer wants. /// <paramref name="minDistance"/> cannot be greater than <paramref name="maxDistance"/>. /// </summary> /// <param name="eventEmitter"></param> /// <param name="minDistance"></param> /// <param name="maxDistance"></param> public static void Set3DAttenuationSettings(FMODUnity.StudioEventEmitter eventEmitter, float minDistance, float maxDistance) { //Stop minDistance from being greater than maxDistance and vice versa. minDistance = Mathf.Clamp(minDistance, 0, maxDistance); maxDistance = Mathf.Max(minDistance, maxDistance); eventEmitter.OverrideAttenuation = true; eventEmitter.OverrideMinDistance = minDistance; eventEmitter.OverrideMaxDistance = maxDistance; }
/// <summary> /// <see cref="Vector2.x"/> = Minimum, <see cref="Vector2.y"/> = Maximum. /// </summary> public static Vector2 GetParameterRange(FMODUnity.StudioEventEmitter eventEmitter, string parameterName) { eventEmitter.EventDescription.getParameterDescriptionByName(parameterName, out FMOD.Studio.PARAMETER_DESCRIPTION paramDescription); Vector2 parameterRange = new Vector2(); parameterRange.x = paramDescription.minimum; parameterRange.y = paramDescription.maximum; return(parameterRange); }
/// <summary> /// This function is pretty useless, use the functions already present on the StudioEventEmitter instead. /// <para></para> /// Either play or stop the inserted StudioEventEmitter-component.<para></para> /// TRUE = Play sound. /// <para></para> FALSE = Stop the sound. /// </summary> public static void PlayOrStopSound(FMODUnity.StudioEventEmitter fmodComponent, bool play) { if (play) { fmodComponent.Play(); } else { fmodComponent.Stop(); } }
// Start is called before the first frame update void Start() { fManager = GameObject.Find("TrackManager"); emitter = fManager.GetComponent <FMODUnity.StudioEventEmitter>(); if (fManager) { Debug.Log(fManager.name); } else { Debug.Log("No TrackManager found!"); } if (emitter == null) { Debug.LogWarning("No fmod emitter found, audio will not play."); } }
// Start is called before the first frame update void Start() { fireCrackling_emitter = fireSprite.GetComponent <FMODUnity.StudioEventEmitter>(); fireSprite.SetActive(false); }
/// <summary> /// Doesn't seem to work. /// </summary> /// <param name="eventEmitter"></param> /// <param name="minDistance"></param> /// <param name="maxDistance"></param> public static void Get3DAttenuationSettings(FMODUnity.StudioEventEmitter eventEmitter, out float minDistance, out float maxDistance) { Get3DAttenuationSettings(eventEmitter.EventInstance, out minDistance, out maxDistance); }
/// <summary> /// Doesn't seem to work until the 3rd or 4th frame for some reason. /// </summary> /// <param name="eventEmitter"></param> public static void SetRandomTimelinePosition(FMODUnity.StudioEventEmitter eventEmitter) { SetRandomTimelinePosition(eventEmitter.EventInstance); }
public static float GetParameterValue(FMODUnity.StudioEventEmitter eventEmitter, string parameterName) { return(GetParameterValue(eventEmitter.EventInstance, parameterName)); }
/// <summary> /// Changes parameter values for the FMODUnity.StudioEventEmitter-object that is passed into the function. /// <para></para> /// This will only work for events that are currently playing, ie. you cannot set this before playing a OneShot. Use <see cref="FMODUnity.RuntimeManager.CreateInstance(string)"/> for that instead. /// </summary> public static void SetParameter(FMODUnity.StudioEventEmitter eventEmitter, string parameterName, float parameterValue) { eventEmitter.SetParameter(parameterName, parameterValue); }
override protected void Awake() { m_particle = GetComponent <ParticleSystem>(); m_sfxEmitter = GetComponent <FMODUnity.StudioEventEmitter>(); base.Awake(); }