public T DirectionTo(TileIndex index, RectDirection direction, int distance) { int i = (int)direction; TileIndex o = new TileIndex(index.x + Directions[i].x * distance, (index.x + Directions[i].x * distance) * columns + index.z + Directions[i].z * distance, index.z + Directions[i].z * distance); return(TileAt(o)); }
private IEnumerator moveRectangular() { rectDirection = RectDirection.Right; while (true) { bool end = true; switch (rectDirection) { case RectDirection.Left: gameObject.transform.position = gameObject.transform.position + new Vector3(-step, 0, 0); break; case RectDirection.Right: gameObject.transform.position = gameObject.transform.position + new Vector3(step, 0, 0); break; case RectDirection.Up: gameObject.transform.position = gameObject.transform.position + new Vector3(0, step, 0); break; case RectDirection.Down: gameObject.transform.position = gameObject.transform.position + new Vector3(0, -step, 0); break; } if ((gameObject.transform.position.x - startPosition.x >= deltaX) && (rectDirection == RectDirection.Right)) rectDirection = RectDirection.Up; else if ((gameObject.transform.position.x <= startPosition.x) && (rectDirection == RectDirection.Left)) rectDirection = RectDirection.Down; else if ((gameObject.transform.position.y - startPosition.y >= deltaY) && (rectDirection == RectDirection.Up)) rectDirection = RectDirection.Left; else if ((gameObject.transform.position.y <= startPosition.y) && (rectDirection == RectDirection.Down)) rectDirection = RectDirection.Right; else end = false; if (end) if (deltaY == 0) { if (rectDirection == RectDirection.Up) rectDirection = RectDirection.Left; else if (rectDirection == RectDirection.Down) rectDirection = RectDirection.Right; } else if (deltaX == 0) if (rectDirection == RectDirection.Left) rectDirection = RectDirection.Down; else if (rectDirection == RectDirection.Right) rectDirection = RectDirection.Up; yield return new WaitForSeconds(time); } }
public T DirectionTo(T tile, RectDirection direction, int distance) { return(DirectionTo(tile.index, direction, distance)); }
public T DirectionTo(Vector3 position, RectDirection direction, int distance) { return(DirectionTo(IndexOf(position), direction, distance)); }
public T DirectionTo(int line, int column, RectDirection direction, int distance) { return(DirectionTo(IndexOf(line, column), direction, distance)); }
public T DirectionTo(int index, RectDirection direction, int distance) { return(DirectionTo(IndexOf(index), direction, distance)); }