Beispiel #1
0
        protected virtual void HandleClientCallFunction(LiteNetLibMessageHandler messageHandler)
        {
            var reader = messageHandler.reader;
            FunctionReceivers receivers = (FunctionReceivers)reader.GetByte();
            long connectId = 0;

            if (receivers == FunctionReceivers.Target)
            {
                connectId = reader.GetLong();
            }
            var info = LiteNetLibElementInfo.DeserializeInfo(reader);
            LiteNetLibIdentity identity;

            if (Assets.SpawnedObjects.TryGetValue(info.objectId, out identity))
            {
                if (receivers == FunctionReceivers.Server)
                {
                    identity.ProcessNetFunction(info, reader, true);
                }
                else
                {
                    var netFunction = identity.ProcessNetFunction(info, reader, false);
                    if (receivers == FunctionReceivers.Target)
                    {
                        netFunction.Call(connectId);
                    }
                    else
                    {
                        netFunction.Call(receivers);
                    }
                }
            }
        }
Beispiel #2
0
        protected virtual void HandleServerCallFunction(LiteNetLibMessageHandler messageHandler)
        {
            var reader = messageHandler.reader;
            var info   = LiteNetLibElementInfo.DeserializeInfo(reader);
            LiteNetLibIdentity identity;

            if (Assets.SpawnedObjects.TryGetValue(info.objectId, out identity))
            {
                identity.ProcessNetFunction(info, reader, true);
            }
        }
Beispiel #3
0
        protected virtual void HandleServerUpdateSyncList(LiteNetLibMessageHandler messageHandler)
        {
            // List updated at server, if this is host (client and server) then skip it.
            if (IsServer)
            {
                return;
            }
            var reader = messageHandler.reader;
            var info   = LiteNetLibElementInfo.DeserializeInfo(reader);
            LiteNetLibIdentity identity;

            if (Assets.SpawnedObjects.TryGetValue(info.objectId, out identity))
            {
                identity.ProcessSyncList(info, reader);
            }
        }