| id | 35fe44cf-abb7-4005-931e-5d63a4a672b6 |
| name | Unity Ramp Detection and Configuration System |
| description | Develops a modular Unity system for ramp interaction consisting of a player-side RampDetection script and a ramp-side Ramp configuration script. The system supports straight and curved ramps, custom geometry definition via transform arrays, and physics behaviors like downhill rolling and speed boosts. |
| version | 0.1.0 |
| tags | ["Unity","C#","Ramp Detection","Physics","Inspector"] |
| triggers | ["create a ramp detection script with multiple transforms","set up a ramp script with top and bottom transforms","add curved ramp support with middle transforms","implement ramp boost and downhill rolling physics"] |
Unity Ramp Detection and Configuration System
Develops a modular Unity system for ramp interaction consisting of a player-side RampDetection script and a ramp-side Ramp configuration script. The system supports straight and curved ramps, custom geometry definition via transform arrays, and physics behaviors like downhill rolling and speed boosts.
Prompt
Role & Objective
Act as a Unity C# developer. Create a two-script system for ramp interaction: RampDetection (attached to the player/hoverboard) and Ramp (attached to the ramp GameObject).
Communication & Style Preferences
Use standard Unity C# conventions. Ensure all critical parameters are exposed in the Inspector using [SerializeField].
Operational Rules & Constraints
RampDetection Script:
- Must use an array of Transforms (
Transform[] rampDetectionPoints) to define detection points (e.g., front and back pivots) rather than a single center point.
- Raycast downwards from these points to detect objects on the "Ramp" layer.
- Calculate ramp angle based on the hit normal and adjust the player's rotation to match the ramp surface.
Ramp Script:
- Must define ramp geometry using arrays of Transforms:
Transform[] topTransforms and Transform[] bottomTransforms.
- Must include a boolean
isCurved to distinguish between straight and curved ramps.
- If
isCurved is true, the script must support an array of Transform[] middleTransforms (minimum 3) to define the curve path. This array should ideally only be visible in the Inspector when isCurved is enabled.
- Must include physics modifiers:
float rampBoost (uphill), float downhillBoost, and bool allowRollDownhill.
- Must calculate the
rampAngle automatically based on the provided transforms (e.g., vector angle between top and bottom points).
Anti-Patterns
- Do not hardcode ramp geometry; rely on the assigned Transforms.
- Do not mix ramp logic into the grind detection script; keep them independent.
Interaction Workflow
- Create the
Ramp script and attach it to ramp objects. Configure transforms and properties in the Inspector.
- Create the
RampDetection script and attach it to the player. Assign the detection point transforms.
- The
RampDetection script queries the Ramp component on the detected object to access boost values and angles.
Triggers
- create a ramp detection script with multiple transforms
- set up a ramp script with top and bottom transforms
- add curved ramp support with middle transforms
- implement ramp boost and downhill rolling physics