# 5. Worked Example: A Landmark Blockout Part of [[ProBuilder Gray-Boxing and Landmarks]]. Prev: [[4. Beat-Chart to Gray-Box]]. Next: [[6. ProBuilder Pitfalls]]. You will build a small approach to a plaza: the tower is visible from the start, a side finger pays off with a "trashcan," and a lit doorway is the goal at the tower's feet. Metrics come from your existing `MovementMetrics` asset. Either stamp a beat chart and dress it, or place the pieces by hand with New Shape - the playtest is the same. ## 5.1 Beat chart Create a `BeatChart` named `Plaza Approach` and assign your metrics. Rows: | Beat | Kind | length | width | showWeenieFromHere | notes | |---|---|---|---|---|---| | Gate Road | Approach | 16 | 6 | true | Setting: evening street. Mechanic: walk / look. Reward: the tower enters view. | | Alcove | RewardFinger | 8 | 4 | false | A side nook. Reward: a green prop (the trashcan). | | Plaza | Landmark | 20 | 20 | true | The weenie. Goal door at its feet (cyan). Calm ring around the edge. | The builder in part 4 stamps a *spine* (rooms in a line). After you run **Tools > Blockout > Build Beat Chart From Selection**, you will *move* the Alcove off to the +X side of Gate Road and open a gap in the wall, and you will widen the plaza by hand if the 20 x 20 floor is not enough. The builder is a start, not a finished street. If you prefer not to fight the spine, skip the menu and place the same pieces with New Shape, using the table only as a plan. ## 5.2 Pieces to end up with 1. **Gate Road** - 16 m corridor, mid-gray floor, dark walls. At z = 0, a `Viewpoint` empty at eye height (`MovementMetrics.height * 0.9`). 2. **Weenie** - `GenerateCone` or New Shape cone, about 12-16 m tall, gold vertex color, in the plaza. A **Spotlight** aimed at it, warm color (for example 40 intensity is often too much - start low and raise until it reads in Game view). URP Lit material on the cone if vertex color does not take light. 3. **Goal door** - `GenerateDoor` or a cyan-framed hole at the tower's feet, slightly brighter (a Point Light just inside a darker interior box). The interior can be a 6 x 4 x 6 room: foreshadow the space, do not finish it. 4. **Alcove finger** - a 8 m stub off Gate Road, green floor, a green cube or cylinder at the end. Optional: later replace the cube with [[2.Worked Effect - Trash Can Fire]]. 5. **LandmarkSightline** on a bootstrap object, viewpoint = the gate eye, landmark = the cone, blockers = Default / Wall layers (not triggers). 6. **A backstage strip** behind a wall (magenta, unlit) with a note collider. The camera should never see it; it exists to prove you can hide service space. Stairs: if you drop the plaza 1.2 m below the road, use `GenerateStair` with a step height `<= metrics.stepHeight`. ## 5.3 Playtest checklist 1. At the gate, in Game view, the gold cone is visible without strafing. The sightline gizmo is yellow. 2. The alcove is optional and ends in a reward. Skipping it does not block the door. 3. The door reads as the goal: cyan plus a light beyond the threshold. 4. The capsule walks every surface that looks walkable. If a lip stops you, it is a metrics or collider bug, not a "feature." 5. A NavMesh bake covers the road, alcove, and plaza, and does not leak into the magenta backstage. 6. Walking Gate Road does not feel long. If it does, cut 4 m or put a second small reward mid-road. Rogers: if it feels long, it is. ## 5.4 Optional scripted weenie If you want one object created from code in the Editor (not Play Mode): ```csharp #if UNITY_EDITOR using UnityEditor; using UnityEditor.ProBuilder; using UnityEngine; using UnityEngine.ProBuilder; public static class PlaceWeenieMenu { [MenuItem("Tools/Blockout/Place Gold Weenie at Scene View Pivot")] static void Place() { var scene = SceneView.lastActiveSceneView; if (scene == null) return; Vector3 p = scene.pivot; var cone = ShapeGenerator.GenerateCone(PivotLocation.Center, 1.2f, 14f, 12); cone.name = "Weenie"; cone.transform.position = p + Vector3.up * 7f; cone.ToMesh(); cone.Refresh(); EditorMeshUtility.Optimize(cone, true); Undo.RegisterCreatedObjectUndo(cone.gameObject, "Place Weenie"); Selection.activeGameObject = cone.gameObject; } } #endif ``` Tint it with the Vertex Color tool, or assign `colors` as in part 4. `SceneView.lastActiveSceneView.pivot` is a long-standing Editor API; if it is renamed in your 6000.5 patch, place the cone at `Vector3.zero` and move it. ## 5.5 Exercise Photograph the Game view from the gate and from the alcove mouth. In a critique, a classmate should be able to point at the destination in the first shot and the reward in the second without you talking. ## Sources - `ShapeGenerator.GenerateCone` / `GenerateDoor` / `GenerateStair` (6.1.4): https://docs.unity3d.com/Packages/[email protected]/api/UnityEngine.ProBuilder.ShapeGenerator.html - [[2.Worked Effect - Trash Can Fire]] - [[NavMesh in Unity 6 (AI Navigation 2.x)]]