protected override JobHandle OnUpdate(JobHandle inputDeps) { var actorOwnerFromEntity = GetComponentDataFromEntity <ActorOwner>(true); var playerActorArrayFromEntity = GetComponentDataFromEntity <PlayerActorArray>(); var slotFromEntity = GetComponentDataFromEntity <Slot>(true); inputDeps = new WeaponUninstallJob { actorOwnerFromEntity = actorOwnerFromEntity, playerActorArrayFromEntity = playerActorArrayFromEntity, slotFromEntity = slotFromEntity, } .ScheduleSingle(this, inputDeps); inputDeps = new WeaponInstallJob { actorOwnerFromEntity = actorOwnerFromEntity, playerActorArrayFromEntity = playerActorArrayFromEntity, slotFromEntity = slotFromEntity, } .ScheduleSingle(this, inputDeps); inputDeps = new ShipDestroyMessageJob { Player_OnShipDestroy_NextFrameMessage = typeof(Player_OnShipDestroyMessage), endCommandBuffer = endBarrier.CreateCommandBuffer().ToConcurrent(), } .Schedule(this, inputDeps); endBarrier.AddJobHandleForProducer(inputDeps); return(inputDeps); }
protected override JobHandle OnUpdate(JobHandle inputDeps) { using (var commandBuffer = new EntityCommandBuffer(Allocator.TempJob)) { inputDeps = new ShipDestroyMessageJob { OnDestroyMessage = typeof(OnDestroyMessage), Weapon_OnShipDestroyMessage = typeof(Weapon_OnShipDestroyMessage), Player_OnShipDestroyMessage = typeof(Player_OnShipDestroyMessage), commandBuffer = commandBuffer.ToConcurrent(), endCommandBuffer = endBarrier.CreateCommandBuffer().ToConcurrent(), playerFromEntity = GetComponentDataFromEntity <Player>(true), } .Schedule(this, inputDeps); inputDeps.Complete(); commandBuffer.Playback(EntityManager); } return(inputDeps); }