protected override JobHandle OnUpdate(JobHandle inputDeps) { var job = new OffsetJob { }; return(job.Schedule(this, inputDeps)); }
protected override JobHandle OnUpdate(JobHandle inputDeps) { var mouse = GetSingleton <SingletonMouseInput>(); var jobHandle = inputDeps; if (mouse.RightClickDown) { EntityQuery m_SelectedUnitPositions = GetEntityQuery(ComponentType.ReadOnly <Translation>(), ComponentType.ReadOnly <TagSelected>()); NativeArray <Translation> m_UnitPositions = m_SelectedUnitPositions.ToComponentDataArray <Translation>(Allocator.TempJob); if (math.distance(mouse.InitialMouseRaycastPosition, mouse.CurrentMouseRaycastPosition) >= 15) { var formationJob = new MoveFormationJob { currentMouseRaycastPosition = mouse.CurrentMouseRaycastPosition, initialMouseRaycastPosition = mouse.InitialMouseRaycastPosition, unitPositions = m_UnitPositions, unitLength = m_UnitPositions.Length }; jobHandle = formationJob.ScheduleSingle(this, inputDeps); jobHandle.Complete(); } else if (math.distance(mouse.InitialMouseRaycastPosition, mouse.CurrentMouseRaycastPosition) < 15) { var offsetJob = new OffsetJob { initialMouseRaycastPosition = mouse.InitialMouseRaycastPosition, unitPositions = m_UnitPositions }; jobHandle = offsetJob.Schedule(this, inputDeps); jobHandle.Complete(); } m_UnitPositions.Dispose(); } return(jobHandle); }