/// <summary> /// 方向の両脇に位置するタイル情報を返す。 /// このメソッドは方向が斜めの場合にのみ対応する特殊なメソッド /// 例えば左下の場合は左と下の2種類のタイル情報が得られる。 /// </summary> protected (IReadOnlyTile, IReadOnlyTile) GetTilesByDiagonal(Direction direction) { DungeonManager DM = DungeonManager.Instance; // 斜め方向以外の場合はnullを返す if (direction.IsStraight || direction.IsNeutral) { return(null, null); } // 斜め方向の場合はその両サイドに該当するタイル情報を返す IReadOnlyTile tile1 = (direction.hasLeft) ? DM.GetTile(Coord, Direction.left) : DM.GetTile(Coord, Direction.right); IReadOnlyTile tile2 = (direction.hasUp) ? DM.GetTile(Coord, Direction.up) : DM.GetTile(Coord, Direction.down); return(tile1, tile2); }
//------------------------------------------------------------------------- // 便利系 /// <summary> /// 指定方向が障害物かどうか /// </summary> /// <param name="direction"></param> /// <returns></returns> protected bool IsObstacle(Direction direction) { IReadOnlyTile next = DungeonManager.Instance.GetTile(Coord, direction); return(next.IsObstacle); }