public static void PreviewUpdateParameter(FMOD.Studio.PARAMETER_ID id, float paramValue) { if (previewEventInstance.isValid()) { CheckResult(previewEventInstance.setParameterByID(id, paramValue)); } }
protected void PlayEvent() { if (!string.IsNullOrEmpty(eventName)) { eventInstance = FMODUnity.RuntimeManager.CreateInstance(eventName); // Only attach to object if the game is actually playing, not auditioning. if (Application.isPlaying && TrackTargetObject) { Rigidbody rb = TrackTargetObject.GetComponent <Rigidbody>(); if (rb) { FMODUnity.RuntimeManager.AttachInstanceToGameObject(eventInstance, TrackTargetObject.transform, rb); } else { FMODUnity.RuntimeManager.AttachInstanceToGameObject(eventInstance, TrackTargetObject.transform, TrackTargetObject.GetComponent <Rigidbody2D>()); } } else { eventInstance.set3DAttributes(FMODUnity.RuntimeUtils.To3DAttributes(Vector3.zero)); } foreach (var param in parameters) { eventInstance.setParameterByID(param.ID, param.Value); } eventInstance.start(); } }
public override void ProcessFrame(Playable playable, FrameData info, object playerData) { if (eventInstance.isValid()) { foreach (ParameterAutomationLink link in parameterLinks) { float value = parameterAutomation.GetValue(link.Slot); eventInstance.setParameterByID(link.ID, value); } } }
protected void PlayEvent() { if (!eventReference.IsNull) { eventInstance = RuntimeManager.CreateInstance(eventReference); // Only attach to object if the game is actually playing, not auditioning. if (Application.isPlaying && TrackTargetObject) { #if UNITY_PHYSICS_EXIST if (TrackTargetObject.GetComponent <Rigidbody>()) { RuntimeManager.AttachInstanceToGameObject(eventInstance, TrackTargetObject.transform, TrackTargetObject.GetComponent <Rigidbody>()); } else #endif #if UNITY_PHYSICS2D_EXIST if (TrackTargetObject.GetComponent <Rigidbody2D>()) { RuntimeManager.AttachInstanceToGameObject(eventInstance, TrackTargetObject.transform, TrackTargetObject.GetComponent <Rigidbody2D>()); } else #endif { RuntimeManager.AttachInstanceToGameObject(eventInstance, TrackTargetObject.transform); } } else { eventInstance.set3DAttributes(RuntimeUtils.To3DAttributes(Vector3.zero)); } foreach (var param in parameters) { eventInstance.setParameterByID(param.ID, param.Value); } eventInstance.setVolume(currentVolume); eventInstance.start(); } }
public void PlayInstance() { if (!instance.isValid()) { instance.clearHandle(); } // Let previous oneshot instances play out if (isOneshot && instance.isValid()) { instance.release(); instance.clearHandle(); } bool is3D; eventDescription.is3D(out is3D); if (!instance.isValid()) { eventDescription.createInstance(out instance); // Only want to update if we need to set 3D attributes if (is3D) { var transform = GetComponent <Transform>(); #if UNITY_PHYSICS_EXIST if (GetComponent <Rigidbody>()) { Rigidbody rigidBody = GetComponent <Rigidbody>(); instance.set3DAttributes(RuntimeUtils.To3DAttributes(gameObject, rigidBody)); RuntimeManager.AttachInstanceToGameObject(instance, transform, rigidBody); } else #endif #if UNITY_PHYSICS2D_EXIST if (GetComponent <Rigidbody2D>()) { var rigidBody2D = GetComponent <Rigidbody2D>(); instance.set3DAttributes(RuntimeUtils.To3DAttributes(gameObject, rigidBody2D)); RuntimeManager.AttachInstanceToGameObject(instance, transform, rigidBody2D); } else #endif { instance.set3DAttributes(RuntimeUtils.To3DAttributes(gameObject)); RuntimeManager.AttachInstanceToGameObject(instance, transform); } } } foreach (var param in Params) { instance.setParameterByID(param.ID, param.Value); } foreach (var cachedParam in cachedParams) { instance.setParameterByID(cachedParam.ID, cachedParam.Value); } if (is3D && OverrideAttenuation) { instance.setProperty(FMOD.Studio.EVENT_PROPERTY.MINIMUM_DISTANCE, OverrideMinDistance); instance.setProperty(FMOD.Studio.EVENT_PROPERTY.MAXIMUM_DISTANCE, OverrideMaxDistance); } instance.start(); hasTriggered = true; }
public void Play() { if (TriggerOnce && hasTriggered) { return; } if (string.IsNullOrEmpty(Event)) { return; } if (!eventDescription.isValid()) { Lookup(); } bool isOneshot = false; if (!Event.StartsWith("snapshot", StringComparison.CurrentCultureIgnoreCase)) { eventDescription.isOneshot(out isOneshot); } bool is3D; eventDescription.is3D(out is3D); if (!instance.isValid()) { instance.clearHandle(); } // Let previous oneshot instances play out if (isOneshot && instance.isValid()) { instance.release(); instance.clearHandle(); } if (!instance.isValid()) { eventDescription.createInstance(out instance); // Only want to update if we need to set 3D attributes if (is3D) { var rigidBody = GetComponent <Rigidbody>(); var rigidBody2D = GetComponent <Rigidbody2D>(); var transform = GetComponent <Transform>(); if (rigidBody) { instance.set3DAttributes(RuntimeUtils.To3DAttributes(gameObject, rigidBody)); RuntimeManager.AttachInstanceToGameObject(instance, transform, rigidBody); } else { instance.set3DAttributes(RuntimeUtils.To3DAttributes(gameObject, rigidBody2D)); RuntimeManager.AttachInstanceToGameObject(instance, transform, rigidBody2D); } } } foreach (var param in Params) { instance.setParameterByID(param.ID, param.Value); } if (is3D && OverrideAttenuation) { instance.setProperty(FMOD.Studio.EVENT_PROPERTY.MINIMUM_DISTANCE, OverrideMinDistance); instance.setProperty(FMOD.Studio.EVENT_PROPERTY.MAXIMUM_DISTANCE, OverrideMaxDistance); } instance.start(); hasTriggered = true; }