using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Linq; using Unity.Jobs; using Unity.Collections; // using Unity.Entities; namespace GraphProcessor { /// /// Graph processor /// public class ProcessGraphProcessor : BaseGraphProcessor { List< BaseNode > processList; /// /// Manage graph scheduling and processing /// /// Graph to be processed public ProcessGraphProcessor(BaseGraph graph) : base(graph) {} public override void UpdateComputeOrder() { processList = graph.nodes.OrderBy(n => n.computeOrder).ToList(); } /// /// Schedule the graph into the job system /// public override void Run() { int count = processList.Count; for (int i = 0; i < count; i++) { processList[i].OnProcess(); } JobHandle.ScheduleBatchedJobs(); } } }