void Start() { if (PathCache == null) { PathCache = new Queue <Vector3>(); } if (PathQueue.Count > 0) { TargetNode = PathQueue.Dequeue(); StartPosition = TargetNode; } else { Debug.Log("PathQueue is empty"); } }
// Update is called once per frame void Update() { Vector3 dir = TargetNode - transform.position; dir.Normalize(); transform.Translate(dir * Time.deltaTime * CurrentCreep.MovementSpeed); if (Vector3.Distance(transform.position, TargetNode) < NodeMargin) { Debug.Log("Creep reached target node"); if (PathQueue.Count > 0) { PathCache.Enqueue(TargetNode); TargetNode = PathQueue.Dequeue(); } else { ReachedGoal(GoalAction); } } }