protected override JobHandle OnUpdate(JobHandle inputDeps)
        {
            ClientDisconnectedJob job = new ClientDisconnectedJob
            {
                CommandBuffer       = commandBuffer.Concurrent,
                EnqueueEventJobPart = World.GetEnqueueEventJobPart <ClientDisconnectedEvent>()
            };

            inputDeps = Entities.WithAll <NetworkStreamDisconnected>()
                        .ForEach((Entity e, int entityInQueryIndex, ref NetworkIdComponent networkId,
                                  ref CommandTargetComponent state) =>
            {
                job.Execute(entityInQueryIndex, state.targetEntity, networkId);
            }).Schedule(inputDeps);
            commandBuffer.AddJobDependency(inputDeps);
            World.EventSystemAddJobDependency(inputDeps);

            return(inputDeps);
        }
示例#2
0
        protected override void OnUpdate()
        {
            if (networkStreamInGameQuery.CalculateEntityCount() == 0)
            {
                EntityManager.DestroyEntity(GetSingletonEntity <Disconnect>());
                return;
            }

            DisconnectJob job = new DisconnectJob
            {
                CommandBuffer = commandBuffer.Concurrent,
                Disconnect    = GetSingletonEntity <Disconnect>()
            };

            Dependency = Entities.WithAll <NetworkStreamInGame>().ForEach(
                (Entity networkStreamEntity, int entityInQueryIndex) =>
            {
                job.Execute(entityInQueryIndex, networkStreamEntity);
            }).Schedule(Dependency);

            commandBuffer.AddJobDependency(Dependency);
            World.EventSystemAddJobDependency(Dependency);
        }
示例#3
0
        protected override JobHandle OnUpdate(JobHandle inputDeps)
        {
            GoInGameJob job = new GoInGameJob
            {
                CommandBuffer = commandBuffer.Concurrent,
                EnqueueClientConnectedEventJobPart = World.GetEnqueueEventJobPart <ClientConnectedEvent>()
            };

            inputDeps = Entities
                        .WithNone <SendRpcCommandRequestComponent>()
                        .WithAll <GoInGameRequest>()
                        .ForEach(
                (Entity reqEnt, int entityInQueryIndex,
                 ref ReceiveRpcCommandRequestComponent reqSrc) =>
            {
                job.Execute(entityInQueryIndex, reqEnt, ref reqSrc);
            }).Schedule(inputDeps);

            commandBuffer.AddJobDependency(inputDeps);
            World.EventSystemAddJobDependency(inputDeps);

            return(inputDeps);
        }