6. Glossary
Plain-English definitions for terms used throughout these docs. If a page uses a word you don't recognize, check here first — then go back to what you were reading.
MonoBehaviour
The base class for any script that gets attached to a GameObject in Unity. If a class inherits from MonoBehaviour, Unity itself creates and manages it — you don't write new MyScript() yourself, you just add it as a component in the Editor. Most of this system's Runtime and Examples classes (LedgeAgent, PlayerController, JumpClimbLedge, and so on) are MonoBehaviours.
ScriptableObject
A Unity asset that holds data rather than living on a GameObject in a scene. LedgeAgentData and LedgeDetectionData are both ScriptableObjects — they're assets you create in your Project window, tune in the Inspector, and reuse across multiple characters without duplicating the same values everywhere.
Component
Anything attached to a GameObject in the Inspector — a MonoBehaviour script, a Collider, a CharacterController, and so on. When these docs say "add this component to your player," they mean drag the script onto the GameObject exactly like you would any built-in Unity component.
Prefab
A reusable, saved GameObject — with all its components and children — that you can drop into any scene. SampleCharacter is a prefab: the entire character hierarchy, pre-wired, ready to place in a scene.
Interface
A contract that says "anything implementing me must provide these methods/properties," without saying how. ICharacterTransform and ICharacterState are interfaces — the system asks for "something that can tell me where the character is," without caring whether that's your own custom controller or the example PlayerController. This is what lets you swap in your own character controller without touching the Core or Runtime layers.
Event Callback
A way for one piece of code to say "let me know when this happens," without the thing announcing it needing to know who's listening. LedgeAgent.OnContextChanged is an event — LedgeAgent doesn't know or care what's subscribed to it; it just announces the change, and every subscriber runs its own response.
Coroutine
A Unity-specific way to write code that runs across multiple frames instead of finishing instantly — useful for "wait a second, then do this" or "wait until this condition becomes true, then continue." Several movement and reaction classes use coroutines to wait for a delay, or a condition like "wait until the character has rotated far enough," before continuing.
Root Motion
Movement that comes from the animation clip itself rather than from code moving the character. When a climb or jump animation is authored so the character model actually shifts position as the clip plays, that displacement can be read out and applied to the real character in the scene — that's root motion. AnimationRootMotionProxy is the piece that reads it and hands it off.
Inverse Kinematics (IK)
A technique for bending a character's limbs to reach a specific point in space, rather than trusting whatever position the animation clip happens to put the hand in. This system uses IK so a character's hands actually line up with the ledge, even when the ledge is a slightly different height or angle than whatever the animation was originally authored for.
LayerMask
A way of tagging GameObjects into named categories ("Ledge," "Ground," "Default," and so on) so that physics queries can be told "only care about objects on these layers." LedgeDetectionData.grabLayer and LedgeAgentData.obstacleLayer are both LayerMasks — get these wrong and the system will either miss valid ledges or treat invisible walls as obstacles.
Raycast and Boxcast
A raycast fires an invisible line through the scene and reports what it hits — it's how the system checks "is there a wall here?" or "is there a ledge above the player?" without needing an actual physical collision. A boxcast is the same idea, but sweeps a box shape instead of a single line — useful for checking whether there's room for the whole character capsule, not just one point.
Surface Normal
A direction, perpendicular to a surface, pointing away from it. If you're standing in front of a wall, the wall's normal points back at your face. The system relies on ledge and wall normals constantly to work out which way the character should face, and which direction counts as "outward" from the ledge.
Next Steps
- Back to Introduction