private void OnTileChanged(Vector2Int previous, Vector2Int current) { if (Running) { var previousDirection = current - previous; var reachedNode = GetNodePosition(_nextIndex, _startingPosition) == current; if (reachedNode) { NodeReached(); } if (reachedNode || _path.UsePathfinding) { FindPathToNextNode(); } var currentDirection = _targetPosition - current; currentDirection.x = Mathf.Clamp(currentDirection.x, -1, 1); currentDirection.y = Mathf.Clamp(currentDirection.y, -1, 1); if (_delay > 0 || currentDirection != previousDirection) { _mover.SkipNextUpdate(); } } }
public void Freeze() { if (_frozenCount == 0) { Mover.SkipNextUpdate(); } _frozenCount++; }