コード例 #1
0
 protected override void OnUpdate()
 {
     // Destroy singleton to prevent system from running again
     EntityManager.DestroyEntity(GetSingletonEntity <InitGameComponent>());
     foreach (World world in World.All)
     {
         NetworkStreamReceiveSystem network = world.GetExistingSystem <NetworkStreamReceiveSystem>();
         if (world.GetExistingSystem <ClientSimulationSystemGroup>() != null)
         {
             // Client worlds automatically connect to localhost
             NetworkEndPoint ep = NetworkEndPoint.LoopbackIpv4;
             ep.Port = 7979;
             network.Connect(ep);
         }
         #if UNITY_EDITOR
         else if (world.GetExistingSystem <ServerSimulationSystemGroup>() != null)
         {
             // Server world automatically listens for connections from any host
             NetworkEndPoint ep = NetworkEndPoint.AnyIpv4;
             ep.Port = 7979;
             network.Listen(ep);
         }
         #endif
     }
 }
コード例 #2
0
        private bool ConnectToServer(NetworkStreamReceiveSystem network, string address, ushort port)
        {
            NetworkEndPoint ep         = NetworkEndPoint.Parse(address, port);
            var             connection = network.Connect(ep);

            Debug.Log($"ConnectToServer({ep.Address}) => {connection}");

            return(connection != Entity.Null);
        }
コード例 #3
0
ファイル: LobbyServerInitSystem.cs プロジェクト: Sibz/Sentry
        protected override void OnUpdate()
        {
            NetworkStreamReceiveSystem network = World.GetExistingSystem <NetworkStreamReceiveSystem>();
            NetworkEndPoint            ep      = NetworkEndPoint.AnyIpv4;

            ep.Port = 21650;
            network.Listen(ep);
            Debug.Log("Lobby Listening on 21650");
            Enabled = false;
        }
コード例 #4
0
        // Server world automatically listens for connections from any host
        private bool StartListenConnections(NetworkStreamReceiveSystem network, ushort port)
        {
            NetworkEndPoint ep = NetworkEndPoint.AnyIpv4;

            ep.Port = port;

            var listenStatus = network.Listen(ep);

            Debug.Log($"StartListenConnections({ep.Address}) => {listenStatus}");

            return(listenStatus);
        }
コード例 #5
0
ファイル: ConnectSystem.cs プロジェクト: Sibz/Sentry
        protected override void OnUpdate()
        {
            EntityManager.DestroyEntity(GetSingletonEntity <Connect>());
            NetworkStreamReceiveSystem network = World.GetExistingSystem <NetworkStreamReceiveSystem>();

            if (network == null || World.GetExistingSystem <ClientSimulationSystemGroup>() == null)
            {
                return;
            }

            NetworkEndPoint ep = NetworkEndPoint.LoopbackIpv4;

            ep.Port = 21650;
            network.Connect(ep);
            Debug.Log("Connecting to LobbyWorld...");
        }
コード例 #6
0
    protected override void OnCreateManager()
    {
        serializers  = default(TGhostSerializerCollection);
        m_DataStream = new DataStreamWriter(2048, Allocator.Persistent);
        ghostGroup   = GetEntityQuery(typeof(GhostComponent), typeof(GhostSystemStateComponent));
        EntityQueryDesc filterSpawn = new EntityQueryDesc
        {
            All  = new ComponentType[] { typeof(GhostComponent) },
            None = new ComponentType[] { typeof(GhostSystemStateComponent) }
        };
        EntityQueryDesc filterDespawn = new EntityQueryDesc
        {
            All  = new ComponentType[] { typeof(GhostSystemStateComponent) },
            None = new ComponentType[] { typeof(GhostComponent) }
        };

        ghostSpawnGroup   = GetEntityQuery(filterSpawn);
        ghostDespawnGroup = GetEntityQuery(filterDespawn);

        m_FreeGhostIds         = new NativeQueue <int>(Allocator.Persistent);
        m_AllocatedGhostIds    = new NativeArray <int>(1, Allocator.Persistent);
        m_AllocatedGhostIds[0] = 1; // To make sure 0 is invalid

        connectionGroup = GetEntityQuery(
            ComponentType.ReadWrite <NetworkStreamConnection>(),
            ComponentType.ReadOnly <NetworkStreamInGame>());

        m_ServerSimulation = World.GetExistingSystem <ServerSimulationSystemGroup>();
        m_Barrier          = World.GetOrCreateSystem <BeginSimulationEntityCommandBufferSystem>();
        m_ReceiveSystem    = World.GetOrCreateSystem <NetworkStreamReceiveSystem>();

        m_ConnectionStates      = new List <ConnectionStateData>(256);
        m_ConnectionStateLookup = new NativeHashMap <Entity, int>(256, Allocator.Persistent);
        m_CompressionModel      = new NetworkCompressionModel(Allocator.Persistent);

        m_SerialSpawnChunks = new NativeList <PrioChunk>(1024, Allocator.Persistent);
    }
コード例 #7
0
 protected override void OnCreateManager()
 {
     m_ReceiveSystem = World.GetOrCreateSystem <NetworkStreamReceiveSystem>();
 }