/// <summary>
        /// Invokes the event over the network.
        /// </summary>
        public void invoke()
        {
            if (hasNetworkAuthority)
            {
                networkIdentity.sendMessage(MessageFactory.createNetworkEventMessage(networkIdentity, !NetworkIdentity.isServer));
            }

            OnEventInvoked.Invoke();
        }
Example #2
0
        private static void processNetworkEventMessage(byte[] msg, bool clientMessage)
        {
            short netID = ObjectSerializer.deserializeShort(ref msg);

            if (NetworkEntityManager.Instance.findComponent(netID, out NetworkedEvent networkedEvent))
            {
                networkedEvent.OnEventInvoked.Invoke();

                //Message was sent from a client, now being processed on the server
                if (clientMessage && ServerBehaviour.Instance)
                {
                    short  clientID        = ObjectSerializer.deserializeShort(ref msg);   //Client who sent the message
                    byte[] networkEventMsg = MessageFactory.createNetworkEventMessage(networkedEvent.networkIdentity);
                    ServerBehaviour.Instance.sendMessage(networkEventMsg, clientID, true); //Forward to all clients but the sender
                }
            }
        }