# 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.

- Skill: `ecnu-icalk/unity-ramp-detection-and-configuration-system` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/unity-ramp-detection-and-configuration-system`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/unity-ramp-detection-and-configuration-system/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/unity-ramp-detection-and-configuration-system

---


# 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
1. Create the `Ramp` script and attach it to ramp objects. Configure transforms and properties in the Inspector.
2. Create the `RampDetection` script and attach it to the player. Assign the detection point transforms.
3. 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

