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 override Playable CreatePlayable(PlayableGraph graph, GameObject owner) { #if UNITY_EDITOR if (!eventReference.IsNull) #else if (!cachedParameters && !eventReference.IsNull) #endif { FMOD.Studio.EventDescription eventDescription = RuntimeManager.GetEventDescription(eventReference); for (int i = 0; i < parameters.Length; i++) { FMOD.Studio.PARAMETER_DESCRIPTION parameterDescription; eventDescription.getParameterDescriptionByName(parameters[i].Name, out parameterDescription); parameters[i].ID = parameterDescription.id; } List <ParameterAutomationLink> parameterLinks = template.parameterLinks; for (int i = 0; i < parameterLinks.Count; i++) { FMOD.Studio.PARAMETER_DESCRIPTION parameterDescription; eventDescription.getParameterDescriptionByName(parameterLinks[i].Name, out parameterDescription); parameterLinks[i].ID = parameterDescription.id; } cachedParameters = true; } var playable = ScriptPlayable <FMODEventPlayableBehavior> .Create(graph, template); behavior = playable.GetBehaviour(); behavior.TrackTargetObject = TrackTargetObject; behavior.eventReference = eventReference; behavior.stopType = stopType; behavior.parameters = parameters; behavior.OwningClip = OwningClip; return(playable); }
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; }
void Lookup() { eventDescription = RuntimeManager.GetEventDescription(EventReference); if (eventDescription.isValid()) { for (int i = 0; i < Params.Length; i++) { FMOD.Studio.PARAMETER_DESCRIPTION param; eventDescription.getParameterDescriptionByName(Params[i].Name, out param); Params[i].ID = param.id; } } }
void Awake() { for (int i = 0; i < Emitters.Length; i++) { var emitterRef = Emitters[i]; if (emitterRef.Target != null && !string.IsNullOrEmpty(emitterRef.Target.Event)) { FMOD.Studio.EventDescription eventDesc = FMODUnity.RuntimeManager.GetEventDescription(emitterRef.Target.Event); if (eventDesc.isValid()) { for (int j = 0; j < Emitters[i].Params.Length; j++) { FMOD.Studio.PARAMETER_DESCRIPTION param; eventDesc.getParameterDescriptionByName(emitterRef.Params[j].Name, out param); emitterRef.Params[j].ID = param.id; } } } } }
/// <summary> /// Gets an event parameter description by its name. /// </summary> public FMOD.Studio.PARAMETER_DESCRIPTION GetParameterDescription(string name) { Native.getParameterDescriptionByName(name, out var parameter); return(parameter); }