ProcessGraphProcessor.cs 901 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using System.Linq;
  5. using Unity.Jobs;
  6. using Unity.Collections;
  7. // using Unity.Entities;
  8. namespace GraphProcessor
  9. {
  10. /// <summary>
  11. /// Graph processor
  12. /// </summary>
  13. public class ProcessGraphProcessor : BaseGraphProcessor
  14. {
  15. List< BaseNode > processList;
  16. /// <summary>
  17. /// Manage graph scheduling and processing
  18. /// </summary>
  19. /// <param name="graph">Graph to be processed</param>
  20. public ProcessGraphProcessor(BaseGraph graph) : base(graph) {}
  21. public override void UpdateComputeOrder()
  22. {
  23. processList = graph.nodes.OrderBy(n => n.computeOrder).ToList();
  24. }
  25. /// <summary>
  26. /// Process all the nodes following the compute order.
  27. /// </summary>
  28. public override void Run()
  29. {
  30. int count = processList.Count;
  31. for (int i = 0; i < count; i++)
  32. processList[i].OnProcess();
  33. }
  34. }
  35. }