# sm.ai.getBreachablePosition

Check if there's an attackable object between the unit and a position.

**Kind:** Function

**Environments:** Game

## Game

``` { .lua .api-signature }
sm.ai.getBreachablePosition( unit, position, range, attack )
```

[Open the full Game reference](../Game-Script-Environment/Static-Functions/sm.ai.md#getbreachableposition)

**Parameters:**

| Name | Type | Description |
| --- | --- | --- |
| `unit` | [Unit](../Game-Script-Environment/Userdata/Unit.md) | The unit. |
| `position` | [Vec3](../Game-Script-Environment/Userdata/Vec3.md) | The target position. |
| `range` | number | The distance. |
| `attack` | integer | The possible attack level from the breacher. |

**Returns:**

| Type | Description |
| --- | --- |
| boolean<br>[Vec3](../Game-Script-Environment/Userdata/Vec3.md)<br>[Shape](../Game-Script-Environment/Userdata/Shape.md) | Returns true if a breachable object is found, an attackable position, and an attackable shape. |
| boolean<br>[Vec3](../Game-Script-Environment/Userdata/Vec3.md)<br>[Harvestable](../Game-Script-Environment/Userdata/Harvestable.md) | Returns true if a breachable object is found, an attackable position, and an attackable harvestable. |
| boolean<br>[Vec3](../Game-Script-Environment/Userdata/Vec3.md)<br>[Lift](../Game-Script-Environment/Userdata/Lift.md) | Returns true if a breachable object is found, an attackable position, and an attackable lift. |
| boolean<br>[Vec3](../Game-Script-Environment/Userdata/Vec3.md) | Returns false if the object is unbreachable and an attackable position. |
| boolean | Returns true when nothing is found. |
