protected override JobHandle OnUpdate(JobHandle inputDeps)
    {
        var job = new OffsetJob
        {
        };

        return(job.Schedule(this, inputDeps));
    }
Example #2
0
    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);
    }