protected override JobHandle OnUpdate(JobHandle inputDeps) { inputDeps = new FireInputJob { endCommandBuffer = endBarrier.CreateCommandBuffer().ToConcurrent(), } .Schedule(this, inputDeps); endBarrier.AddJobHandleForProducer(inputDeps); return(inputDeps); }
protected override JobHandle OnUpdate(JobHandle inputDeps) { // if (enterGameQuery.IsEmptyIgnoreFilter == false) { EntityManager.AddComponent <PlayerShipMoveInputNetMessage>(enterGameQuery); EntityManager.AddComponent <PlayerShipFireInputNetMessage>(enterGameQuery); } // inputDeps = base.OnUpdate(inputDeps); // using (var moveInputCommandBuffer = new SampleCommandBuffer <ShipMoveInput>(Allocator.TempJob)) using (var weaponInputCommandBuffer = new SampleCommandBuffer <WeaponInput>(Allocator.TempJob)) { var inputDepsA = new MoveInputJob { shipDisableMoveInputFromEntity = GetComponentDataFromEntity <ShipLostInputState>(true), moveInputCommandBuffer = moveInputCommandBuffer.ToConcurrent(), } .Schedule(this, inputDeps); var inputDepsB = new FireInputJob { shipDisableFireInputFromEntity = GetComponentDataFromEntity <ShipLostInputState>(true), weaponInstalledStateFromEntity = GetComponentDataFromEntity <WeaponInstalledState>(true), weaponControlFromEntity = GetComponentDataFromEntity <WeaponControl>(true), translationFromEntity = GetComponentDataFromEntity <Translation>(true), rotationFromEntity = GetComponentDataFromEntity <Rotation>(true), weaponInputCommandBuffer = weaponInputCommandBuffer.ToConcurrent(), } .Schedule(this, inputDeps); moveInputCommandBuffer.Playback(EntityManager, inputDepsA); weaponInputCommandBuffer.Playback(EntityManager, inputDepsB); } return(inputDeps); }