unity-xr
XR Interaction Toolkit skills for VR/AR development
Install / Use
npx skills add takugen31/RPGColorTest --skill xrInstalls into whichever agent you are using.
Gemini Rules
Gemini CLI config
Quality Score
Category
Development & EngineeringSupported Platforms
Our assessment of unity-xr
unity-xr scores 60/100 on our quality scale, 4075th of 4,619 Development & Engineering skills we index.
Its Gemini Rules is 8.6 KB long, well organised into 18 sections with 2 code examples: a thorough specification that gives an agent plenty to work with.
It has no GitHub stars yet, so there is no community track record; judge it on its content.
Maintenance, license and trust
- We could not determine when the repository was last updated.
- Our last check on 2026-09-03 found the source still online.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 68/100, with 3 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
unity-xr compared with similar skills
All 4 of these similar skills score higher than unity-xr; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| unity-xr (this skill)by takugen31 | 60 | 0 | — | Gemini Rules |
| ai-job-searchby MadsLorentzen | 100 | 44.9k | 1d ago | CLAUDE.md |
| claude-howtoby luongnv89 | 100 | 41.7k | 4d ago | CLAUDE.md |
| algorithmic-artby anthropics | 100 | 177.9k | 12d ago | SKILL.md |
| constraint-driven-developmentby addyosmani | 100 | 98.8k | 11d ago | SKILL.md |
Frequently asked questions
- How do I install unity-xr?
- Run
npx skills add takugen31/RPGColorTest. The install tabs above show the steps for each supported agent. - Which AI agents does unity-xr work with?
- It is written for Gemini CLI, as a Gemini Rules file. Other agents that read the same format can often use it too.
- Is unity-xr safe to use?
- It declares no license and scores 68/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is unity-xr still maintained?
- We could not determine when the repository was last updated.
Skill content
View source on GitHubname: unity-xr description: "XR Interaction Toolkit skills for VR/AR development. Use when users want to set up XR rigs, add grab interactions, configure teleportation, continuous locomotion, XR UI, or diagnose XR scenes. Triggers: XR, VR, AR, grab, teleport, XR Origin, XR Rig, hand tracking, controller, interactor, interactable, locomotion, 抓取, 传送, 手柄, 头盔, 虚拟现实. Requires com.unity.xr.interaction.toolkit package. Reflection-based: compatible with XRI 2.x (Unity 2022) and XRI 3.x (Unity 6+)."
Unity XR Interaction Toolkit Skills
Use this module for XR Interaction Toolkit setup and configuration. All xr_* skills are reflection-based and support XRI 2.x on Unity 2022 and XRI 3.x on Unity 6+.
Requires:
com.unity.xr.interaction.toolkit. Hard rule: Read this file before the firstxr_*call in a session. Wrong property names can fail silently because the bridge is reflection-based.
Guardrails
Mode: Full-Auto required
DO NOT (common hallucinations):
XRHand,XRPlayer,XRTeleporter,GrabInteractor,VRController,XRLocomotion, andXRManagerare not the runtime classes you want hereinteractable.OnGrab()/OnRelease()are not the XRI event model -> useselectEntered/selectExitedcontroller.vibrate()is not the documented route here -> configure haptics throughxr_configure_haptics- Do not assume physics Layer or Tag replaces
InteractionLayerMask - Do not guess component property names. Load
API_REFERENCE.mdbefore setting detailed XR component properties
Correct class names to anchor on:
XRInteractionManagerXROriginXRRayInteractorXRDirectInteractorXRSocketInteractorXRGrabInteractableXRSimpleInteractableTeleportationProviderTeleportationAreaTeleportationAnchorContinuousMoveProviderSnapTurnProviderContinuousTurnProviderTrackedDeviceGraphicRaycasterXRUIInputModuleTrackedPoseDriver
Routing:
- For non-XR Canvas UI creation -> use
ui - For architecture or lifecycle decisions in XR gameplay code -> load advisory modules such as
architecture,patterns,async, orscriptdesign - For exact component property names and full workflow examples -> load
API_REFERENCE.md
Skills
Setup and Diagnostics
| Skill | Use | Key parameters |
|-------|-----|----------------|
| xr_check_setup | Validate XR package, rig, managers, and scene prerequisites | verbose? |
| xr_setup_rig | Create XR Origin + camera + controllers | name, cameraYOffset? |
| xr_setup_interaction_manager | Add or find manager | none |
| xr_setup_event_system | Replace/add XR UI input stack | none |
| xr_get_scene_report | Report scene-side XR status | none |
Interactors and Interactables
| Skill | Use | Key parameters |
|-------|-----|----------------|
| xr_add_ray_interactor | Remote pointing / ray interaction | name, maxDistance?, lineType? |
| xr_add_direct_interactor | Close-range hand grab | name, radius? |
| xr_add_socket_interactor | Snap-to slot | name, showHoverMesh?, recycleDelay? |
| xr_add_grab_interactable | Rigidbody + collider + grab config | name, movementType?, throwOnDetach? |
| xr_add_simple_interactable | Hover/select without grab | name |
| xr_configure_interactable | Fine-tune interactable behavior | target + changed fields only |
| xr_list_interactors | List all scene interactors | none |
| xr_list_interactables | List all scene interactables | none |
Locomotion and XR UI
| Skill | Use | Key parameters |
|-------|-----|----------------|
| xr_setup_teleportation | Add teleport provider to XR Origin | none |
| xr_add_teleport_area | Mark a surface as teleportable | name, matchOrientation? |
| xr_add_teleport_anchor | Create fixed teleport destination | name, x/y/z, rotY?, matchOrientation? |
| xr_setup_continuous_move | Add stick locomotion | moveSpeed?, enableStrafe?, enableFly? |
| xr_setup_turn_provider | Add snap or smooth turn | turnType, turnAmount?, turnSpeed? |
| xr_setup_ui_canvas | Convert Canvas for XR interaction | name |
Feedback and Filtering
| Skill | Use | Key parameters |
|-------|-----|----------------|
| xr_configure_haptics | Set hover/select vibration | name, intensities, durations |
| xr_add_interaction_event | Wire interaction callback to target method | name, eventType, targetName, targetMethod |
| xr_configure_interaction_layers | Set InteractionLayerMask | name, layers, isInteractor |
Quick Start
import unity_skills as u
u.call_skill("xr_check_setup")
u.call_skill("xr_setup_rig", name="XR Origin")
u.call_skill("xr_add_ray_interactor", name="Right Controller")
u.call_skill("xr_add_direct_interactor", name="Left Controller")
u.call_skill("xr_setup_teleportation")
u.call_skill("xr_setup_turn_provider", turnType="Snap", turnAmount=45)
u.call_skill("xr_add_grab_interactable", name="MyCube", movementType="VelocityTracking")
Workflow Summary
Rig Setup
- Run
xr_check_setup. - Create the rig with
xr_setup_rig. - Ensure XR UI input exists with
xr_setup_event_system. - Add at least one interactor per controller.
Grab Setup
- Direct hand grab:
xr_add_direct_interactor+xr_add_grab_interactable - Distance grab:
xr_add_ray_interactor+xr_add_grab_interactable - Socket placement:
xr_add_socket_interactor+ grabbable object
movementType defaults matter:
VelocityTracking: best general-purpose physical grabKinematic: use for handles/tools that should not get stuckInstantaneous: best for precise remote grab
Locomotion Setup
- Teleport:
xr_setup_teleportation+xr_add_ray_interactor+xr_add_teleport_area/xr_add_teleport_anchor - Continuous locomotion:
xr_setup_continuous_move - Turn:
xr_setup_turn_provider
Comfort default: snap turn + moderate move speed (~2.0 m/s).
XR UI
- Convert Canvas with
xr_setup_ui_canvas - Ensure
xr_setup_event_system - Add a ray interactor on the controller that should click UI
Collider Configuration Matrix
This is the most important XR anti-hallucination table in the repo.
| Component | Collider required | isTrigger | Recommended collider | Reason |
|----------|-------------------|-------------|----------------------|--------|
| XRDirectInteractor | Yes | True | SphereCollider (0.1-0.25) | Overlap detection |
| XRRayInteractor | No | - | None | Uses raycasts |
| XRSocketInteractor | Yes | True | SphereCollider (0.1-0.3) | Snap zone |
| XRGrabInteractable | Yes | False | BoxCollider or convex MeshCollider | Physics + ray target |
| XRSimpleInteractable | Yes | False | BoxCollider | Selection detection |
| TeleportationArea | Yes | False | MeshCollider or BoxCollider | Surface raycast target |
| TeleportationAnchor | Yes | False | Thin BoxCollider | Point raycast target |
Critical rules:
XRGrabInteractableneeds aRigidbody.- A grabbable collider must not be trigger.
- A direct interactor collider must be trigger.
- Dynamic mesh colliders must be convex.
- Socket colliders should be trigger-only overlap zones.
Version Compatibility
| Topic | XRI 2.x | XRI 3.x |
|------|---------|---------|
| Main namespace style | root namespace | split sub-namespaces |
| Rig type | XROrigin | XROrigin |
| Locomotion core | LocomotionSystem | LocomotionMediator |
| Controller type | ActionBasedController | ActionBasedController |
| Bridge behavior | Reflection helper falls back automatically | Reflection helper prefers 3.x first |
Important Notes
- Scenes should normally have exactly one
XRInteractionManager. - Most locomotion skills assume an
XROriginalready exists. - Package installation or reconfiguration can trigger Domain Reload. Wait before retrying XR calls.
- Use
InteractionLayerMaskfor interactor/interactable filtering. - For custom XR scripts, prefer XRI lifecycle hooks and events over
Update()polling when possible.
Minimal Example
import unity_skills as u
u.call_skill("xr_setup_rig", name="XR Origin", cameraYOffset=1.36)
u.call_skill("xr_setup_event_system")
u.call_skill("xr_add_ray_interactor", name="Right Controller", maxDistance=30, lineType="StraightLine")
u.call_skill("xr_add_grab_interactable", name="Tool", movementType="VelocityTracking", throwOnDetach=True)
u.call_skill("xr_configure_haptics", name="Right Controller", selectIntensity=0.7, selectDuration=0.15)
Exact Signatures
Exact names, parameters, defaults, and returns are defined by GET /skills/schema or unity_skills.get_skill_schema(), not by this file.
Before configuring XR component properties in detail, load API_REFERENCE.md. XR property names are reflection-sensitive.
Related Skills
ai-job-search
44.9kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
claude-howto
41.7kA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
constraint-driven-development
98.8kEstablishes a project's quality bar as a written contract and stops agents quietly lowering it. Interviews the user on which dimensions matter, supplies sane default thresholds when they have no number in mind, records everything in CONSTRAINTS.md, and watches the diff for a weakened bar — new @ts-i…
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
