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); }
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); }
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); }