Skip to content
unity-xr logo

Unity XR Interaction Toolkit Skills

unity-xr

XR Interaction Toolkit (XRI) for VR/AR — set up XR rigs, grab/socket/ray interactors, interactables, teleport/locomotion, turn, XR Canvas/EventSystem, haptics. Requires com.unity.xr.interaction.toolkit. Exact signatures via GET /skills/schema.

SKILL.md

Full skill instructions

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 first xr_* call in a session. Wrong property names can fail silently because the bridge is reflection-based.

Guardrails

Operating Mode (v1.9 three-tier):

  • Approval (default): query/​list/​info skills (xr_check_setup, xr_get_scene_report, xr_list_interactors, xr_list_interactables) run directly. Create/​modify skills are FullAuto — on MODE_RESTRICTED, run the grant protocol; a successful /​permission/​grant executes the skill server-side and returns the result in the same response.
  • Auto / Bypass: SemiAuto and FullAuto run directly.
  • This module contains no Delete / PlayMode / Reload / RiskLevel="high" skills, so nothing is auto-classified as forbidden — every skill is reachable via grant.
  • When com.unity.xr.interaction.toolkit is missing, every xr_* skill returns the NoXRI() install instruction instead of executing.
  • Reflection-sensitive: property names on XRI components must match XRI 2.x/​3.x exactly. A wrong field name on xr_configure_interactable / xr_configure_haptics / xr_configure_interaction_layers is silently ignored. Load API_REFERENCE.md before issuing detailed property edits.

DO NOT (common hallucinations):

  • XRHand, XRPlayer, XRTeleporter, GrabInteractor, VRController, XRLocomotion, and XRManager are not the runtime classes you want here
  • interactable.OnGrab() / OnRelease() are not the XRI event model -> use selectEntered / selectExited
  • controller.vibrate() is not the documented route here -> configure haptics through xr_configure_haptics
  • Do not assume physics Layer or Tag replaces InteractionLayerMask
  • Do not guess component property names. Load API_REFERENCE.md before setting detailed XR component properties

Correct class names to anchor on:

  • XRInteractionManager
  • XROrigin
  • XRRayInteractor
  • XRDirectInteractor
  • XRSocketInteractor
  • XRGrabInteractable
  • XRSimpleInteractable
  • TeleportationProvider
  • TeleportationArea
  • TeleportationAnchor
  • ContinuousMoveProvider
  • SnapTurnProvider
  • ContinuousTurnProvider
  • TrackedDeviceGraphicRaycaster
  • XRUIInputModule
  • TrackedPoseDriver

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, or scriptdesign
  • For exact component property names and full workflow examples -> load API_REFERENCE.md

Skills

Setup and Diagnostics

SkillUseKey parameters
xr_check_setupValidate XR package, rig, managers, and scene prerequisitesverbose?
xr_setup_rigCreate XR Origin + camera + controllersname, cameraYOffset?
xr_setup_interaction_managerAdd or find managernone
xr_setup_event_systemReplace/​add XR UI input stacknone
xr_get_scene_reportReport scene-side XR statusnone

Interactors and Interactables

SkillUseKey parameters
xr_add_ray_interactorRemote pointing / ray interactionname, maxDistance?, lineType?
xr_add_direct_interactorClose-range hand grabname, radius?
xr_add_socket_interactorSnap-to slotname, showHoverMesh?, recycleDelay?
xr_add_grab_interactableRigidbody + collider + grab configname, movementType?, throwOnDetach?
xr_add_simple_interactableHover/​select without grabname
xr_configure_interactableFine-tune interactable behaviortarget + changed fields only
xr_list_interactorsList all scene interactorsnone
xr_list_interactablesList all scene interactablesnone

Locomotion and XR UI

SkillUseKey parameters
xr_setup_teleportationAdd teleport provider to XR Originnone
xr_add_teleport_areaMark a surface as teleportablename, matchOrientation?
xr_add_teleport_anchorCreate fixed teleport destinationname, x/​y/​z, rotY?, matchOrientation?
xr_setup_continuous_moveAdd stick locomotionmoveSpeed?, enableStrafe?, enableFly?
xr_setup_turn_providerAdd snap or smooth turnturnType, turnAmount?, turnSpeed?
xr_setup_ui_canvasConvert Canvas for XR interactionname

Feedback and Filtering

SkillUseKey parameters
xr_configure_hapticsSet hover/​select vibrationname, intensities, durations
xr_add_interaction_eventWire interaction callback to target methodname, eventType, targetName, targetMethod
xr_configure_interaction_layersSet InteractionLayerMaskname, 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

  1. Run xr_check_setup.
  2. Create the rig with xr_setup_rig.
  3. Ensure XR UI input exists with xr_setup_event_system.
  4. 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 grab
  • Kinematic: use for handles/​tools that should not get stuck
  • Instantaneous: 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

  1. Convert Canvas with xr_setup_ui_canvas
  2. Ensure xr_setup_event_system
  3. 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.

ComponentCollider requiredisTriggerRecommended colliderReason
XRDirectInteractorYesTrueSphereCollider (0.1-0.25)Overlap detection
XRRayInteractorNo-NoneUses raycasts
XRSocketInteractorYesTrueSphereCollider (0.1-0.3)Snap zone
XRGrabInteractableYesFalseBoxCollider or convex MeshColliderPhysics + ray target
XRSimpleInteractableYesFalseBoxColliderSelection detection
TeleportationAreaYesFalseMeshCollider or BoxColliderSurface raycast target
TeleportationAnchorYesFalseThin BoxColliderPoint raycast target

Critical rules:

  1. XRGrabInteractable needs a Rigidbody.
  2. A grabbable collider must not be trigger.
  3. A direct interactor collider must be trigger.
  4. Dynamic mesh colliders must be convex.
  5. Socket colliders should be trigger-only overlap zones.

Version Compatibility

TopicXRI 2.xXRI 3.x
Main namespace styleroot namespacesplit sub-namespaces
Rig typeXROriginXROrigin
Locomotion coreLocomotionSystemLocomotionMediator
Controller typeActionBasedControllerActionBasedController
Bridge behaviorReflection helper falls back automaticallyReflection helper prefers 3.x first

Important Notes

  1. Scenes should normally have exactly one XRInteractionManager.
  2. Most locomotion skills assume an XROrigin already exists.
  3. Package installation or reconfiguration can trigger Domain Reload. Wait before retrying XR calls.
  4. Use InteractionLayerMask for interactor/​interactable filtering.
  5. 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.

More skills from gabrielmoreira

workflow-router logo
gabrielmoreira/agent-skills-mirror

workflow-router

研发工作流入口 - 帮助用户快速进入正确的工作流阶段。 触发关键词: 工作流, 流程, 从哪开始, 帮我, 我该怎么做, 下一步, workflow, 不知道用什么, 新手引导, 怎么用

19 0
View
平台架构知识 logo
gabrielmoreira/agent-skills-mirror

平台架构知识

Periodically refreshed mirror of agents, skills, prompts and instruction files from public repositories.

19 0
View
unity-profiler logo
gabrielmoreira/agent-skills-mirror

unity-profiler

Read-only Unity runtime performance snapshots — FPS, frame time, batches/draw calls, triangles/vertices, memory (total/mono/per-asset), object counts, AssetBundle stats. Exact signatures via GET /skills/schema.

19 0
View
ads-audit logo
gabrielmoreira/agent-skills-mirror

ads-audit

Full multi-platform paid advertising audit with parallel subagent delegation. Analyzes Google Ads, Meta Ads, LinkedIn Ads, TikTok Ads, Microsoft Ads, and Apple Ads accounts via 6 parallel audit agents. Amazon Ads, cross-platform attribution, and server-side tracking are covered by their standalon...

19 0
View
unity-skills logo
gabrielmoreira/agent-skills-mirror

unity-skills

Unity Editor automation via REST API — create scripts, analyze scenes, manage assets, control editor, orchestrate workflows, run batch jobs, and route by Unity version. Triggers: Unity, Unity Skills, in Unity, automate Unity, Unity editor automation, create Unity script, scene summary, analyze Un...

19 0
View
purple-cow-audit logo
gabrielmoreira/agent-skills-mirror

purple-cow-audit

Score product remarkability 1-10 to decide if it's worth promoting. Seth Godin's Purple Cow test. Triggers on: "is this product worth promoting", "should I promote", "product audit", "purple cow", "remarkable product", "is it remarkable", "rate this product", "product quality check", "worth my re...

19 0
View
unity-cleaner logo
gabrielmoreira/agent-skills-mirror

unity-cleaner

Project cleanup and audit — find unused assets, content-hash duplicates, missing references, empty folders, large assets, dependency trees; two-step confirm-token delete. Exact signatures via GET /skills/schema.

19 0
View
skill-manager-guide logo
gabrielmoreira/agent-skills-mirror

skill-manager-guide

**GUIDE SKILL** — Guide to the Skill Manager for Copilot extension. USE FOR: adding/removing skill repos, syncing skills, pushing feedback, configuring sync intervals, troubleshooting sync issues, understanding skill format. DO NOT USE FOR: creating new skills (use skill-creator), creating agents...

19 0
View
configure-nightwatch logo
gabrielmoreira/agent-skills-mirror

configure-nightwatch

Configures Laravel Nightwatch data collection, sampling rates, filtering rules, and redaction policies. Use when setting up Nightwatch, managing data volume, protecting sensitive data (PII), or optimizing event collection for production workloads.

19 0
View
research-and-write logo
gabrielmoreira/agent-skills-mirror

research-and-write

End-to-end workflow: research a topic and then write a LinkedIn post about it. Use this skill whenever the user wants the full pipeline — from a topic idea to a finished LinkedIn post. Triggers on: 'research and write a post about', 'create a LinkedIn post about [topic]', 'I want to post about', ...

19 0
View
AI Tutor Persona logo
gabrielmoreira/agent-skills-mirror

AI Tutor Persona

Periodically refreshed mirror of agents, skills, prompts and instruction files from public repositories.

19 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View