public void CalculateSafeRanges() { EncounteredObstacles.Add(91, true); bool inRange = false; Vector2 currentRange = new Vector2(0, 0); for (int i = 0; i <= 91; i++) { if (inRange) { if (EncounteredObstacles[i]) { inRange = false; currentRange.y = i; if (currentRange.y - currentRange.x > BestRange.y - BestRange.x) { BestRange = currentRange; } } } else { if (!EncounteredObstacles[i]) { inRange = true; currentRange.x = i; } } } CenterOfBestRange = BestRange.x + (BestRange.y - BestRange.x) / 2f; }
public void ScanBoardForObstacles() { for (int i = 0; i <= 90; i++) { RaycastHit hitInfo = new RaycastHit(); if (Physics.Raycast( new Vector3( Board.BoardIntoWorld(-91.44f / 2f) + (Board.BoardIntoWorld(91.44f) * (i / 90f)), 0.003f, Board.BoardIntoWorld(Direction * -91.44f / 2f) ), new Vector3(0, 0, Direction), out hitInfo, Board.BoardIntoWorld(91.44f / 2f) ) ) { EncounteredObstacles.Add(i, true); } else { EncounteredObstacles.Add(i, false); } } }