In this section, you'll create static obstacles for your game and configure them to work with the Navmesh Obstacle Avoidance feature. This will make the game much more challenging and interesting. Let's start by creating the obstacle GameObjects. Right-click in the hierarchy. Navigate to 3D Objects and choose one of the standard 3D objects to create an obstacle. Repeat this step to create additional obstacles with different shapes and ramps. Feel free to move, rotate, and scale the obstacles to customize their appearance. Make sure to turn at least one object into a ramp to test your Enemy's slope climbing abilities. To ensure that the NavmeshSurface takes the obstacles into account when baking, we need to make them child objects of the Ground GameObject. Remember that in this case, the NavmeshSurface Object Collection parameter is set to consider only the child objects of the Ground GameObject. In the hierarchy, drag each obstacle GameObject onto the Ground GameObject to make them child GameObjects. Once you have made all the obstacles child objects of the Ground GameObject, it's time to rebake the Navmesh to include the new obstacles. Select the Ground GameObject and click on the Bake button in the NavmeshSurface Component to regenerate the Navmesh with the updated obstacle configuration. You should now see the area around the obstacles carved out of the blue NavmeshSurface overlay in the scene. In the NavmeshSurface Component, from the Agent Type dropdown, select, Open Agent Settings. In this window, you can adjust the properties of your Navmesh Agents. Increasing the step height will allow the Agent to hop up onto higher surfaces. Increasing the max slope will allow the Agent to climb up steeper hills. Adjust these settings, rebake, and test the effect they have on your scene. You have successfully created static obstacles for your Enemy. Next, you'll implement dynamic obstacles that will update the baked Navmesh live during the game.