override protected JobHandle OnUpdate(JobHandle jobs) { var cmdBufferConcurrent = cmdBuffer.CreateCommandBuffer().ToConcurrent(); var deltaTime = Time.deltaTime; var swapBlocks = new SwapBlock() { cmdBuffer = cmdBufferConcurrent }; var initBlockPos = new SetSpawnedBlockToInitialPosition() { levelInfo = levelInfo, cmdBuffer = cmdBufferConcurrent, viewCmdStack = viewCmdStack.ToConcurrent() }; jobs = swapBlocks.Schedule(this, jobs); jobs = initBlockPos.Schedule(this, jobs); if (viewCmdStack.CanExecute <MoveDownCommand>()) { var moveDownBlock = new MoveDown() { cmdBuffer = cmdBuffer.CreateCommandBuffer().ToConcurrent(), dt = deltaTime, levelInfo = levelInfo }; jobs = moveDownBlock.Schedule(this, jobs); } return(jobs); }