public static FMOD.Studio.EventInstance CreateInstance(Guid guid) { FMOD.Studio.EventDescription eventDesc = GetEventDescription(guid); FMOD.Studio.EventInstance newInstance; eventDesc.createInstance(out newInstance); return(newInstance); }
private void load() { _desc = System.Instance.GetEventDescription(_path); Utilities.checkResult(_desc.createInstance(out _instance)); Ready = true; }
public static void PreviewEvent(EditorEventRef eventRef) { bool load = true; if (previewEventDesc != null) { Guid guid; previewEventDesc.getID(out guid); if (guid == eventRef.Guid) { load = false; } else { PreviewStop(); } } if (load) { CheckResult(System.loadBankFile(EventManager.MasterBank.Path, FMOD.Studio.LOAD_BANK_FLAGS.NORMAL, out masterBank)); CheckResult(System.loadBankFile(eventRef.Banks[0].Path, FMOD.Studio.LOAD_BANK_FLAGS.NORMAL, out previewBank)); CheckResult(System.getEventByID(eventRef.Guid, out previewEventDesc)); CheckResult(previewEventDesc.createInstance(out previewEventInstance)); } CheckResult(previewEventInstance.start()); previewState = PreviewState.Playing; }
public static void PreviewEvent(EditorEventRef eventRef, Dictionary <string, float> previewParamValues) { bool load = true; if (previewEventDesc.isValid()) { Guid guid; previewEventDesc.getID(out guid); if (guid == eventRef.Guid) { load = false; } else { PreviewStop(); } } if (load) { masterBanks.Clear(); foreach (EditorBankRef masterBankRef in EventManager.MasterBanks) { FMOD.Studio.Bank masterBank; CheckResult(System.loadBankFile(masterBankRef.Path, FMOD.Studio.LOAD_BANK_FLAGS.NORMAL, out masterBank)); masterBanks.Add(masterBank); } if (!EventManager.MasterBanks.Exists(x => eventRef.Banks.Contains(x))) { CheckResult(System.loadBankFile(eventRef.Banks[0].Path, FMOD.Studio.LOAD_BANK_FLAGS.NORMAL, out previewBank)); } else { previewBank.clearHandle(); } CheckResult(System.getEventByID(eventRef.Guid, out previewEventDesc)); CheckResult(previewEventDesc.createInstance(out previewEventInstance)); } foreach (EditorParamRef param in eventRef.Parameters) { FMOD.Studio.PARAMETER_DESCRIPTION paramDesc; CheckResult(previewEventDesc.getParameterDescriptionByName(param.Name, out paramDesc)); param.ID = paramDesc.id; PreviewUpdateParameter(param.ID, previewParamValues[param.Name]); } CheckResult(previewEventInstance.start()); previewState = PreviewState.Playing; }
public void Play() { if (TriggerOnce && hasTriggered) { return; } if (String.IsNullOrEmpty(Event)) { return; } if (eventDescription == null) { Lookup(); eventDescription.isOneshot(out isOneshot); } // Let previous oneshot instances play out if (isOneshot && instance != null) { instance.release(); instance = null; } if (instance == null) { eventDescription.createInstance(out instance); } instance.set3DAttributes(RuntimeUtils.To3DAttributes(gameObject, cachedRigidBody)); foreach (var param in Params) { instance.setParameterValue(param.Name, param.Value); } instance.start(); hasTriggered = true; // Only want to update if we need to set 3D attributes bool is3d = false; eventDescription.is3D(out is3d); if (is3d) { enabled = true; } }
public static void PreviewEvent(EditorEventRef eventRef) { bool load = true; if (previewEventDesc.isValid()) { Guid guid; previewEventDesc.getID(out guid); if (guid == eventRef.Guid) { load = false; } else { PreviewStop(); } } if (load) { masterBanks.Clear(); foreach (EditorBankRef masterBankRef in EventManager.MasterBanks) { FMOD.Studio.Bank masterBank; CheckResult(System.loadBankFile(masterBankRef.Path, FMOD.Studio.LOAD_BANK_FLAGS.NORMAL, out masterBank)); masterBanks.Add(masterBank); } if (!EventManager.MasterBanks.Exists(x => eventRef.Banks.Contains(x))) { CheckResult(System.loadBankFile(eventRef.Banks[0].Path, FMOD.Studio.LOAD_BANK_FLAGS.NORMAL, out previewBank)); } else { previewBank.clearHandle(); } CheckResult(System.getEventByID(eventRef.Guid, out previewEventDesc)); CheckResult(previewEventDesc.createInstance(out previewEventInstance)); } CheckResult(previewEventInstance.start()); previewState = PreviewState.Playing; }
public void Play() { if (TriggerOnce && hasTriggered) { return; } if (eventDescription == null) { Lookup(); } eventDescription.createInstance(out instance); instance.set3DAttributes(RuntimeUtils.To3DAttributes(gameObject, cachedRigidBody)); instance.start(); hasTriggered = true; }
public static FMOD.Studio.EventInstance CreateInstance(Guid guid) { FMOD.Studio.EventDescription eventDesc = GetEventDescription(guid); FMOD.Studio.EventInstance newInstance; eventDesc.createInstance(out newInstance); #if UNITY_EDITOR bool is3D = false; eventDesc.is3D(out is3D); if (is3D) { // Set position to 1e+18F, set3DAttributes should be called by the dev after this. newInstance.set3DAttributes(RuntimeUtils.To3DAttributes(new Vector3(1e+18F, 1e+18F, 1e+18F))); instance.eventPositionWarnings.Add(newInstance); } #endif return(newInstance); }
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(); } if (!Event.StartsWith(SnapshotString, 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.setParameterValue(param.Name, 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; }
public void Play() { if (TriggerOnce && hasTriggered) { return; } if (String.IsNullOrEmpty(Event)) { return; } if (eventDescription == null) { Lookup(); } bool isOneshot = false; if (!Event.StartsWith("snapshot", StringComparison.CurrentCultureIgnoreCase)) { eventDescription.isOneshot(out isOneshot); } bool is3D; eventDescription.is3D(out is3D); if (instance != null && !instance.isValid()) { instance = null; } // Let previous oneshot instances play out if (isOneshot && instance != null) { instance.release(); instance = null; } if (instance == null) { eventDescription.createInstance(out instance); // Only want to update if we need to set 3D attributes if (is3D) { var rigidBody = GetComponent <Rigidbody>(); var transform = GetComponent <Transform>(); instance.set3DAttributes(RuntimeUtils.To3DAttributes(gameObject, rigidBody)); RuntimeManager.AttachInstanceToGameObject(instance, transform, rigidBody); } } foreach (var param in Params) { instance.setParameterValue(param.Name, param.Value); } instance.start(); hasTriggered = true; }
public void Play(string audioFile) { if (String.IsNullOrEmpty(audioFile)) { return; } if (TriggerOnce && hasTriggered) { return; } if (String.IsNullOrEmpty(Event)) { return; } if (!eventDescription.isValid()) { Lookup(); } bool isOneshot = false; if (!Event.StartsWith("snapshot", StringComparison.CurrentCultureIgnoreCase)) { eventDescription.isSnapshot(out isOneshot); } bool is3D = false; eventDescription.is3D(out is3D); if (!instance.isValid()) { instance.clearHandle(); } if (isOneshot && instance.isValid()) { instance.release(); instance.clearHandle(); } if (!instance.isValid()) { eventDescription.createInstance(out instance); 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.setParameterValue(param.Name, param.Value); } if (is3D && OverrideAttenuation) { instance.setProperty(FMOD.Studio.EVENT_PROPERTY.MINIMUM_DISTANCE, OverrideMinDistance); instance.setProperty(FMOD.Studio.EVENT_PROPERTY.MAXIMUM_DISTANCE, OverrideMaxDistance); } ExtensionsManager.PlayProgrammerSound(audioFile, this.instance); hasTriggered = true; }