[English](README.md) | [日本語](README.ja.md) | [简体中文](README.zh-CN.md) | **繁體中文** | [한국어](README.ko.md)

VRChat SDK UdonSharp Agent Skills 授權條款

npm 版本 npm 下載量 CI

Agent Skills for VRChat UdonSharp

教導 AI 程式碼代理生成正確 UdonSharp 程式碼的技能、規則與驗證掛鉤

簡介安裝專案結構技能規則掛鉤貢獻免責聲明

---

簡介

使用 **UdonSharp**(C# → Udon Assembly)進行 VRChat 世界開發時,存在嚴格的編譯限制,與標準 C# 有顯著差異。`List`、`async/await`、`try/catch`、LINQ、lambda 等功能會導致**編譯錯誤**。 本專案為 AI 程式碼代理提供必要知識,使其從一開始就能生成正確的 UdonSharp 程式碼。 | 問題 | 解決方案 | |------|----------| | AI 生成 `List`、`async/await` 等不支援的語法 | 規則 + 掛鉤自動偵測並發出警告 | | 同步變數過度膨脹 | 決策樹 + 資料量預算 | | 不正確的網路模式 | 模式庫 + 反模式集 | | SDK 版本間功能差異 | 版本對照表與功能對應 | | Late Joiner 狀態不一致 | 同步模式選擇框架 | **本專案並非:** - VRChat SDK 或 UdonSharp 的發布版本 - Unity 專案(不包含可執行程式碼) - [VRChat 官方文件](https://creators.vrchat.com/) 的替代品 - AI 行為的完整保證 > **Issues**:歡迎透過 [GitHub Issues](https://github.com/niaka3dayo/agent-skills-vrc-udon/issues) 提交錯誤回報與知識請求。 > **PRs**:不接受 Pull Request。詳情請參閱 [CONTRIBUTING.md](CONTRIBUTING.md)。 ---

安裝

> **從 fork/clone 遷移?** — 自 v1.0.0 起,本專案以 **npm 套件** 形式發布。您不再需要 fork 或 clone 此儲存庫。只需在您的 VRChat Unity 專案中執行以下任一安裝指令即可。如果您先前曾 clone 此儲存庫,可以安全地刪除該目錄並改用 npm 安裝方式。 ### 方法 1:skills CLI(推薦) ```bash npx skills add niaka3dayo/agent-skills-vrc-udon ``` 此方法使用 [skills.sh](https://skills.sh) 生態系統將技能安裝至您的專案。 ### 方法 2:Claude Code 外掛 ```bash claude plugin add niaka3dayo/agent-skills-vrc-udon ``` ### 方法 3:git clone ```bash git clone https://github.com/niaka3dayo/agent-skills-vrc-udon.git ``` ---

專案結構

```text 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/ # 程式碼範本(17 個檔案) references/ # 詳細文件(25 個檔案) unity-vrc-world-sdk-3/ # VRC World SDK 技能 SKILL.md, LICENSE.txt, CHEATSHEET.md, references/(8 個檔案) templates/ # AI 工具設定範本 CLAUDE.md AGENTS.md GEMINI.md # 透過安裝程式分發給使用者 .claude-plugin/marketplace.json # Claude Code 外掛註冊 CLAUDE.md # 開發指南(僅限本儲存庫) ``` ---

技能

### unity-vrc-udon-sharp UdonSharp 腳本核心技能。涵蓋編譯限制、網路、事件與範本。 | 領域 | 內容 | |------|------| | **限制** | 被禁止的 C# 功能與替代方案(`List` → `DataList`、`async` → `SendCustomEventDelayedSeconds`) | | **網路** | 所有權模型、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 限制 | | **範本** | 17 個範本(互動、同步模式、持久化、編輯器工具等) | ### 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 項最小化原則 | ### 同步決策樹 ```text Q1: 其他玩家是否需要看到? 否 --> 不需同步(0 位元組) 是 --> Q2 Q2: Late Joiner 是否需要取得當前狀態? 否 --> 僅使用事件(0 位元組) 是 --> Q3 Q3: 是否持續變化?(位置/旋轉) 是 --> Continuous 同步 否 --> Manual 同步(最少量的 [UdonSynced]) ``` **目標**:每個 behaviour 低於 50 位元組。中小型世界:合計低於 100 位元組。 ---

驗證掛鉤

PostToolUse 掛鉤會在 `.cs` 檔案被編輯時自動執行。 | 類別 | 檢查項目 | 嚴重程度 | |------|----------|----------| | 禁止功能 | `List`、`async/await`、`try/catch`、LINQ、Coroutine、lambda | ERROR | | 禁止模式 | `AddListener()`、`StartCoroutine()` | ERROR | | 網路 | `[UdonSynced]` 缺少 `RequestSerialization()` | WARNING | | 網路 | `[UdonSynced]` 缺少 `Networking.SetOwner()` | WARNING | | 同步膨脹 | 每個 behaviour 超過 6 個同步變數 | WARNING | | 同步膨脹 | `int[]`/`float[]` 同步(建議使用更小的型別) | WARNING | | 設定不符 | `NoVariableSync` 模式下使用 `[UdonSynced]` 欄位 | ERROR | 同時支援 **Bash**(`validate-udonsharp.sh`)與 **PowerShell**(`validate-udonsharp.ps1`)。 --- ## SDK 版本 | SDK 版本 | 主要功能 | 狀態 | |:--------:|:---------|:----:| | **3.7.1** | `StringBuilder`、`Regex`、`System.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 時間全域變數 | 已支援 | | **3.10.3** | `VRCPlayerApi.isVRCPlus`、VRCRaycast(頭像)、Mirror 渲染順序修正 | 已支援 | | **3.10.4** | VRCTween、Box 形 Contacts、Global Avatar PhysBone Colliders、世界 `VRCPhysBoneCollider` Udon 存取、DataList/DataDictionary 容量 API | 最新穩定版 | > **注意**: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](CONTRIBUTING.md)。 ---

免責聲明

> **本專案與 VRChat Inc. 無任何關聯。不暗示任何官方背書、合作關係或從屬關係。** > > 「VRChat」、「UdonSharp」、「Udon」及相關名稱/標誌為 VRChat Inc. 的商標。所有商標均歸其各自所有者所有。 > > 本儲存庫是一個**個人知識庫**,旨在協助 AI 程式碼代理生成正確的 UdonSharp 程式碼。本專案不分發 VRChat SDK 或 UdonSharp 編譯器的任何部分。 ### 準確性 - 內容以**「現狀」**提供,不附帶任何保證。請參閱 [LICENSE](LICENSE)。 - 這是一個個人專案。**可能存在錯誤、過時資訊或不完整的內容。** 請務必與 [VRChat 官方文件](https://creators.vrchat.com/) 進行核對。 - 作者不對本儲存庫造成的問題承擔任何責任(建置錯誤、上傳被拒絕、非預期的世界行為等)。 - SDK 涵蓋範圍(3.7.1 - 3.10.4)反映的是最後更新時的狀態。VRChat 發布新版本時,行為可能會有所變更。 ### AI 輔助建立 本知識庫在 AI 工具(Claude、Gemini、Codex)的輔助下建立與維護。所有內容均經過審閱,但 AI 生成的部分可能包含細微錯誤。使用時請自行承擔風險。 --- ## 授權條款 本專案採用 **MIT 授權條款**。詳情請參閱 [LICENSE](LICENSE)。 您可以在 MIT 授權條款下自由 fork、修改與再發布。本授權條款適用於本儲存庫中的文件、規則、範本與掛鉤。本授權**不**授予 VRChat SDK、UdonSharp 編譯器或其他 VRChat 智慧財產權的任何權利。