public void ProcessMessage(NetworkMessage msg)
        {
#if UNITY_EDITOR && SCOPE_DEBUGGING
            // log incoming signal
            ScopeDebugger.AddIncomingSignal(this, msg.reader);

            msg.reader.SeekZero();
#endif

            // if not pause, invoke the signal immediately
            if (!_isPaused)
            {
                MethodBindingCache.Invoke(this, cachedType, msg.reader);
            }
            // if paused, enqueue paused signal for later processing
            else
            {
                SignalInvocation inv = MethodBindingCache.GetMessageInvocation(cachedType, msg.reader);
                pausedMessages.Enqueue(inv);
            }
        }
 protected void Initialize()
 {
     cachedType = GetType();
     MethodBindingCache.BindScope(cachedType);
 }