Пример #1
0
        /// <summary>
        /// Broadcasts the value if needed
        /// </summary>
        protected virtual void ProcessBroadcast()
        {
            if (Emitter == null)
            {
                return;
            }

            float level = Emitter.GetLevel();

            if (level != _levelLastFrame)
            {
                // we trigger a value change event
                OnValueChange?.Invoke();

                // for each of our receivers, we set the level manually
                foreach (MMRadioReceiver receiver in Receivers)
                {
                    receiver?.SetLevel(level);
                }

                // we broadcast an event
                if (BroadcastOnChannel)
                {
                    MMRadioLevelEvent.Trigger(Channel, level);
                }
            }

            _levelLastFrame = level;
        }
Пример #2
0
 /// <summary>
 /// Starts listening for events
 /// </summary>
 public virtual void StartListening()
 {
     _listeningToEvents = true;
     MMRadioLevelEvent.Register(OnRadioLevelEvent);
 }
Пример #3
0
 /// <summary>
 /// Stops listening for events
 /// </summary>
 public virtual void StopListening()
 {
     _listeningToEvents = false;
     MMRadioLevelEvent.Unregister(OnRadioLevelEvent);
 }