npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

agent-skills-vrc-udon

v1.4.0

Published

AI Agent Skills for VRChat UdonSharp - Rules, validation hooks, and knowledge base for correct UdonSharp code generation

Readme

English | 日本語 | 简体中文 | 繁體中文 | 한국어


使用 UdonSharp(C# → Udon Assembly)進行 VRChat 世界開發時,存在嚴格的編譯限制,與標準 C# 有顯著差異。List<T>async/awaittry/catch、LINQ、lambda 等功能會導致編譯錯誤

本專案為 AI 程式碼代理提供必要知識,使其從一開始就能生成正確的 UdonSharp 程式碼。

| 問題 | 解決方案 | |------|----------| | AI 生成 List<T>async/await 等不支援的語法 | 規則 + 掛鉤自動偵測並發出警告 | | 同步變數過度膨脹 | 決策樹 + 資料量預算 | | 不正確的網路模式 | 模式庫 + 反模式集 | | SDK 版本間功能差異 | 版本對照表與功能對應 | | Late Joiner 狀態不一致 | 同步模式選擇框架 |

本專案並非:

  • VRChat SDK 或 UdonSharp 的發布版本
  • Unity 專案(不包含可執行程式碼)
  • VRChat 官方文件 的替代品
  • AI 行為的完整保證

Issues:歡迎透過 GitHub Issues 提交錯誤回報與知識請求。 PRs:不接受 Pull Request。詳情請參閱 CONTRIBUTING.md


從 fork/clone 遷移? — 自 v1.0.0 起,本專案以 npm 套件 形式發布。您不再需要 fork 或 clone 此儲存庫。只需在您的 VRChat Unity 專案中執行以下任一安裝指令即可。如果您先前曾 clone 此儲存庫,可以安全地刪除該目錄並改用 npm 安裝方式。

方法 1:skills CLI(推薦)

npx skills add niaka3dayo/agent-skills-vrc-udon

此方法使用 skills.sh 生態系統將技能安裝至您的專案。

方法 2:Claude Code 外掛

claude plugin add niaka3dayo/agent-skills-vrc-udon

方法 3:npx 直接安裝

npx agent-skills-vrc-udon

選項:

npx agent-skills-vrc-udon --force    # 覆寫現有檔案
npx agent-skills-vrc-udon --list     # 預覽待安裝檔案(模擬執行)

方法 4:git clone

git clone https://github.com/niaka3dayo/agent-skills-vrc-udon.git

skills/                                  # 所有技能
  unity-vrc-udon-sharp/                 # UdonSharp 核心技能
    SKILL.md                              # 技能定義 + frontmatter
    LICENSE.txt                           # MIT 授權條款
    CHEATSHEET.md                         # 快速參考(1 頁)
    rules/                               # 限制規則
      udonsharp-constraints.md
      udonsharp-networking.md
      udonsharp-sync-selection.md
    hooks/                               # PostToolUse 驗證
      validate-udonsharp.sh
      validate-udonsharp.ps1
    assets/templates/                    # 程式碼範本(4 個檔案)
    references/                          # 詳細文件(20 個檔案)
  unity-vrc-world-sdk-3/                # VRC World SDK 技能
    SKILL.md, LICENSE.txt, CHEATSHEET.md, references/(7 個檔案)
templates/                               # AI 工具設定範本
  CLAUDE.md  AGENTS.md  GEMINI.md        # 透過安裝程式分發給使用者
.claude-plugin/marketplace.json         # Claude Code 外掛註冊
CLAUDE.md                               # 開發指南(僅限本儲存庫)

unity-vrc-udon-sharp

UdonSharp 腳本核心技能。涵蓋編譯限制、網路、事件與範本。

| 領域 | 內容 | |------|------| | 限制 | 被禁止的 C# 功能與替代方案(List<T>DataListasyncSendCustomEventDelayedSeconds) | | 網路 | 所有權模型、Manual/Continuous 同步、FieldChangeCallback、反模式 | | NetworkCallable | SDK 3.8.1+ 參數化網路事件(最多 8 個參數) | | 持久化 | SDK 3.7.4+ PlayerData/PlayerObject API | | 動態元件 | SDK 3.10.0+ PhysBones、Contacts、VRC Constraints for Worlds | | 網頁載入 | String/Image 下載、VRCJson、VRCUrl 限制 | | 範本 | 4 個入門範本(BasicInteraction、SyncedObject、PlayerSettings、CustomInspector) |

unity-vrc-world-sdk-3

世界級場景設定、元件配置與效能最佳化。

| 領域 | 內容 | |------|------| | 場景設定 | VRC_SceneDescriptor、出生點、Reference Camera | | 元件 | VRC_Pickup、Station、ObjectSync、Mirror、Portal、CameraDolly | | 圖層 | VRChat 保留圖層與碰撞矩陣 | | 效能 | FPS 目標、Quest/Android 限制、最佳化檢查清單 | | 光照 | 烘焙光照最佳實踐 | | 音訊/視訊 | 空間音訊、影片播放器選擇(AVPro vs Unity) | | 上傳 | 建置與上傳流程、上傳前檢查清單 |


規則是在 AI 代理生成程式碼之前提供指引的限制檔案。

| 規則檔案 | 內容 | |----------|------| | udonsharp-constraints | 被禁止的 C# 功能、程式碼生成規則、屬性、可同步型別 | | udonsharp-networking | 所有權模型、同步模式、反模式、NetworkCallable 限制 | | udonsharp-sync-selection | 同步決策樹、資料量預算目標、6 項最小化原則 |

同步決策樹

Q1: 其他玩家是否需要看到?
    否  --> 不需同步(0 位元組)
    是  --> Q2

Q2: Late Joiner 是否需要取得當前狀態?
    否  --> 僅使用事件(0 位元組)
    是  --> Q3

Q3: 是否持續變化?(位置/旋轉)
    是  --> Continuous 同步
    否  --> Manual 同步(最少量的 [UdonSynced])

目標:每個 behaviour 低於 50 位元組。中小型世界:合計低於 100 位元組。


PostToolUse 掛鉤會在 .cs 檔案被編輯時自動執行。

| 類別 | 檢查項目 | 嚴重程度 | |------|----------|----------| | 禁止功能 | List<T>async/awaittry/catch、LINQ、Coroutine、lambda | ERROR | | 禁止模式 | AddListener()StartCoroutine() | ERROR | | 網路 | [UdonSynced] 缺少 RequestSerialization() | WARNING | | 網路 | [UdonSynced] 缺少 Networking.SetOwner() | WARNING | | 同步膨脹 | 每個 behaviour 超過 6 個同步變數 | WARNING | | 同步膨脹 | int[]/float[] 同步(建議使用更小的型別) | WARNING | | 設定不符 | NoVariableSync 模式下使用 [UdonSynced] 欄位 | ERROR |

同時支援 Bashvalidate-udonsharp.sh)與 PowerShellvalidate-udonsharp.ps1)。


SDK 版本

| SDK 版本 | 主要功能 | 狀態 | |:--------:|:---------|:----:| | 3.7.1 | StringBuilderRegexSystem.Random | 已支援 | | 3.7.4 | Persistence API(PlayerData / PlayerObject) | 已支援 | | 3.7.6 | 多平台建置與發布(PC + Android) | 已支援 | | 3.8.0 | PhysBone 依賴排序、Force Kinematic On Remote | 已支援 | | 3.8.1 | [NetworkCallable] 參數化事件、Others/Self 目標 | 已支援 | | 3.9.0 | Camera Dolly API、Auto Hold pickup | 已支援 | | 3.10.0 | VRChat Dynamics for Worlds(PhysBones、Contacts、VRC Constraints) | 已支援 | | 3.10.1 | 錯誤修正、穩定性改善 | 已支援 | | 3.10.2 | EventTiming.PostLateUpdate/FixedUpdate、PhysBones 修正、shader 時間全域變數 | 最新穩定版 |

注意:SDK 3.9.0 以下版本已於 2025 年 12 月 2 日棄用。新的世界上傳需使用 3.9.0 以上版本。


官方資源

| 資源 | 網址 | |------|------| | VRChat Creators 文件 | https://creators.vrchat.com/ | | UdonSharp API 參考 | https://udonsharp.docs.vrchat.com/ | | VRChat 論壇(問答) | https://ask.vrchat.com/ | | VRChat Canny(錯誤/功能建議) | https://feedback.vrchat.com/ | | VRChat 社群 GitHub | https://github.com/vrchat-community |


歡迎提交 Issues -- 錯誤回報和知識請求有助於改善本專案。

不接受 Pull Request -- 所有修正與更新由維護者進行。

詳情請參閱 CONTRIBUTING.md


本專案與 VRChat Inc. 無任何關聯。不暗示任何官方背書、合作關係或從屬關係。

「VRChat」、「UdonSharp」、「Udon」及相關名稱/標誌為 VRChat Inc. 的商標。所有商標均歸其各自所有者所有。

本儲存庫是一個個人知識庫,旨在協助 AI 程式碼代理生成正確的 UdonSharp 程式碼。本專案不分發 VRChat SDK 或 UdonSharp 編譯器的任何部分。

準確性

  • 內容以**「現狀」**提供,不附帶任何保證。請參閱 LICENSE
  • 這是一個個人專案。可能存在錯誤、過時資訊或不完整的內容。 請務必與 VRChat 官方文件 進行核對。
  • 作者不對本儲存庫造成的問題承擔任何責任(建置錯誤、上傳被拒絕、非預期的世界行為等)。
  • SDK 涵蓋範圍(3.7.1 - 3.10.2)反映的是最後更新時的狀態。VRChat 發布新版本時,行為可能會有所變更。

AI 輔助建立

本知識庫在 AI 工具(Claude、Gemini、Codex)的輔助下建立與維護。所有內容均經過審閱,但 AI 生成的部分可能包含細微錯誤。使用時請自行承擔風險。


授權條款

本專案採用 MIT 授權條款。詳情請參閱 LICENSE

您可以在 MIT 授權條款下自由 fork、修改與再發布。本授權條款適用於本儲存庫中的文件、規則、範本與掛鉤。本授權授予 VRChat SDK、UdonSharp 編譯器或其他 VRChat 智慧財產權的任何權利。