// -- // void PlayOneShot(string eventName, EventPayload data) { FMODEventInstance = FMODUnity.RuntimeManager.CreateInstance(eventName); SetupSpacePosition(data.Has(_customPositionInEventPayload), data.Get <Vector3>(_customPositionInEventPayload)); FMODEventInstance.start(); FMODEventInstance.release(); }
// -- LISTENERS -- // void OnStartEvent(EventPayload data) { if (_playOneShot) { if (!_cumulatePlayOneShot) { FMODEventInstance.stop(_stopMode); } PlayOneShot(_FMODEvent, data); return; } playing = true; currentPayload = data; FeedParameters(data); FMODEventInstance.start(); }
void _Trigger(string eventName, EventPayload data = null, object target = null, object emitter = null) { EventInvoker <EventPayload> invoker; if (events.TryGetValue(eventName, out invoker)) { currentEvent = eventName; invoker.Emitter = emitter; invoker.Target = target; if (data == null) { invoker.Invoke(); } else { invoker.Invoke(data); } currentEvent = NO_EVENT; } }
void FeedParameters(EventPayload data) { int floatLoop = data.GetParametersOfType <float>(ref floatParameters); int boolLoop = data.GetParametersOfType <bool>(ref boolParameters); for (int i = 0; i < _parameters.Length; ++i) { FMODEventInstance.setParameterValue(_parameters[i].name, _parameters[i].value); } for (int i = 0; i < floatLoop; ++i) { FMODEventInstance.setParameterValue(floatParameters[i], data.Get <float>(floatParameters[i])); } for (int i = 0; i < boolLoop; ++i) { // All bool are converted to float. True = 1.0f, False = 0.0f FMODEventInstance.setParameterValue(boolParameters[i], data.Get <bool>(boolParameters[i]) ? 1.0f : 0.0f); } SetupSpacePosition(data.Has(_customPositionInEventPayload), data.Get <Vector3>(_customPositionInEventPayload)); }
static public void Trigger(string eventName, EventPayload data, object target = null, object emitter = null) { Instance._Trigger(eventName, data, target, emitter); }
void OnStopEvent(EventPayload data) { FMODEventInstance.stop(_stopMode); playing = false; currentPayload = null; }