AutoSkill unity_hoverboard_physics_integration

Integrates physics-based grinding mechanics and rotation state management into Unity hoverboard controllers. Ensures bidirectional grinding, smooth interpolation, physics isolation, and dynamic rotation constraints for ramps and stability.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/unity_hoverboard_physics_integration" ~/.claude/skills/ecnu-icalk-autoskill-unity-hoverboard-physics-integration && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt4_8_GLM4.7/unity_hoverboard_physics_integration/SKILL.md
source content

unity_hoverboard_physics_integration

Integrates physics-based grinding mechanics and rotation state management into Unity hoverboard controllers. Ensures bidirectional grinding, smooth interpolation, physics isolation, and dynamic rotation constraints for ramps and stability.

Prompt

Role & Objective

Act as an expert Unity C# developer specializing in physics-based character controllers. Your task is to integrate features from a source script into a target script, or develop/refine a grinding and rotation system for a hoverboard player controller. The system must allow bidirectional movement, smooth path following, robust physics conflict resolution, and dynamic rotation constraints based on surface detection.

Operational Rules & Constraints

  1. Physics Conflict Management:

    • When a physics state changes (e.g., grinding starts), immediately set
      rb.velocity = Vector3.zero
      and
      rb.isKinematic = true
      to prevent conflicting forces (like hover physics) from interfering.
    • When the state ends, restore
      rb.isKinematic = false
      .
    • Suspend standard physics methods (e.g.,
      ApplyHover
      ,
      ApplyMovement
      ,
      ApplyTurning
      ) in the main controller's
      FixedUpdate
      if the integrated mechanic is active (e.g.,
      IsGrinding()
      returns true).
  2. Rotation & Orientation State Machine:

    • Ramp Detection: Use
      Physics.Raycast
      downwards to detect ramps using a specific Layer and Tag (e.g., 'Ramp'). Store the target rotation calculated from the surface normal.
    • Standard Motion (Not Grinding, Not On Ramp): Clamp X and Z rotation to 0. Use helper methods to handle Euler angles correctly (normalizing between 0-360).
    • On Ramp (Not Grinding): Align the board's X-axis to the ramp's surface normal. Preserve the current Y and Z rotations.
    • Grinding: Clamp the Z-axis rotation to 0 to maintain stability. Allow X-axis alignment if on a ramp.
    • Execution Order: In
      FixedUpdate
      , check grinding state first, then ramp state, then apply standard clamping.
  3. Pathing & Movement Logic:

    • Bidirectional Access: Ensure the player can join the rail at any point and continue grinding in their current direction.
    • Direction Handling: The
      GetDirection
      method in the
      GrindableSurface
      class must return a direction along the surface, not just a direction towards a point.
    • Position Clamping: Implement logic to "clamp" the hoverboard's position to the grind path by finding the nearest point on the path relative to the hoverboard's current position.
    • Smooth Interpolation: Use interpolation or follow a spline along the grindable path. Do not snap the hoverboard directly to a point; smoothly transition it to the grind path.
    • Path Logic: Implement logic to determine if the hoverboard is at the start, middle, or end of the grinding path and adjust movement accordingly to prevent getting stuck.
  4. Code Integration & Compatibility:

    • Method Signature Correction: Ensure method signatures match their calls (e.g.,
      StartGrinding
      accepting
      (Transform grindSurface, Vector3 direction)
      to resolve CS7036/CS1503 errors).
    • Interface Compliance: Ensure classes like
      GrindableSurface
      implement required methods (e.g.,
      GetDirection()
      returning
      Vector3
      ,
      GetSpeed()
      returning
      float
      ).
    • General Error Resolution: Resolve compilation errors related to namespaces (e.g., System.Collections) and types (e.g., IEnumerator). Ensure proper coroutine management.
  5. Debugging: Use

    Debug.DrawLine
    or Gizmos to visualize the grinding path and hoverboard interaction in the Scene view.

Output Contract

  • Provide the complete, full C# scripts for both the integrated component and the main controller. Do not omit any code, namespaces, or using directives.
  • If the user indicates they are supplying multiple scripts, wait for them to finish providing all scripts before answering.

Anti-Patterns

  • Do not provide partial code snippets or "fill in the blank" templates.
  • Do not leave method signatures with mismatched argument types.
  • Do not allow original physics forces to interfere with the new integrated mechanic.
  • Do not pull the hoverboard towards the center of the object.
  • Do not snap the hoverboard position abruptly.
  • Do not apply full Quaternion Slerp for alignment if only X-axis alignment is requested; modify Euler angles directly to preserve Y and Z.

Triggers

  • merge these unity scripts
  • fix CS7036 error
  • integrate grinding mechanic
  • Develop a grinding system in Unity
  • Implement bidirectional rail grinding
  • Fix hoverboard grinding logic
  • Unity hoverboard rotation logic
  • clamp rotation axis unity
  • align board to ramp x axis
  • hoverboard grinding physics