void AttemptToReachTarget() { timeSinceMoveOrdered += Time.deltaTime; if (!moveOrder.hasStarted || timeSinceMoveOrdered > moveOrderInterval) { if (seeker.IsDone()) { moveOrder.currentPosition = currentPosition; moveOrder.hasStarted = true; seeker.StartPath(currentPosition, target.transform.position, moveOrder.SetNewPath); timeSinceMoveOrdered = 0f; } } if (moveOrder.hasStarted) { moveOrder.currentPosition = currentPosition; moveOrder.Update(); currentPosition = moveOrder.currentPosition; if (moveOrder.isCompleted) { moveOrder.hasStarted = false; } } }
public override void Update() { if (!attackOrder.target) { GetTarget(); } if (attackOrder.target) { attackOrder.currentPosition = currentPosition; attackOrder.Update(); currentPosition = attackOrder.currentPosition; } else { if (moveOrder.hasStarted == false) { moveOrder.hasStarted = true; seeker.StartPath(currentPosition, targetPosition, moveOrder.SetNewPath); } moveOrder.currentPosition = currentPosition; moveOrder.Update(); currentPosition = moveOrder.currentPosition; } isCompleted = moveOrder.isCompleted; }