跳转到内容

47. 继续学习

约 30 分钟 难度:进阶 创作者视角

到这里全书 47 章读完。一座世界从空 Unity 工程到上线 VRChat、稳定运营的全程跑通过一遍。

但 VRChat SDK 一直在更新,UdonSharp 的能力一直在扩展,社区里每周都有新教程、新坑、新工具。这本书写定之后就是一份固定快照,世界在它之外继续变。

最后一章的目的不是再教什么新技术,是回答书结束之后接下来去哪这个问题:要查文档时去哪、要看别人怎么做时去哪、下一座世界怎么开始。

creators.vrchat.com 是写这本书时反复回查的源头。官方文档自己有一套结构,理解了这个结构后续自己查会快很多。

主站大致分四个层级:

creators.vrchat.com
├─ /sdk/ SDK 安装、版本、Creator Companion
├─ /worlds/ ← 写这本书的主战场
│ ├─ /creating-your-first-world/ 入门
│ ├─ /components/ 所有 SDK 组件参考
│ ├─ /udon/ Udon 编程
│ │ ├─ /networking/ 网络同步
│ │ ├─ /persistence/ PlayerData
│ │ └─ /graph/ Udon Graph(书里没怎么用)
│ ├─ /sdk-prefabs/ 官方预制体
│ ├─ /performance-tips/ 性能建议
│ ├─ /submitting-a-world/ 发布流程
│ └─ /updating-your-world/ 版本更新
├─ /avatars/ 头像开发(这本书没碰)
├─ /economy/ Creator Economy
└─ /platforms/
└─ /android/ Quest 平台限制

读法上的几条经验:

  • 每个组件的字段定义都在 /worlds/components/<componentname>/。书里凡是「VRC X」开头的组件(VRC Pickup、VRC Object Sync、VRC Scene Descriptor、VRC Spatial Audio Source 等),文档地址都是这个模式。直接拼 URL 比从首页点进去快。
  • SDK 升级 / 版本变动看 /sdk/。VRChat 大改 SDK 的时候迁移指南都在这一段。每年大改一次,社区里有大量过期教程,遇到看着不对的步骤先来这里对一遍。
  • Networking 那块特别绕。同一件事在 /worlds/udon/networking/ 下分散在好几个子页(network-components、events、ownership、sync 等),第一次读建议从 /worlds/udon/networking/ 主页那张总图开始,别从子页钻进去。

VRChat 还维护一份旧版文档 docs.vrchat.com(早期 SDK2 时代留下的)。Community Labs、Trust Rank 这些跟玩家行为相关的内容仍然在那里,跟创作者文档分开。

社区资源繁多,质量参差。可以按权威性分几档:

档位来源怎么用
官方creators.vrchat.comudonsharp.docs.vrchat.com、官方 GitHubAPI 行为以此为准
平台官方Unity Manual、Microsoft C# DocsUnity / C# 基础以此为准
社区组织VRCLibrary、VR Creators、VRCD 文档库、VRC School、UdonSharp DeepWiki有编辑流程,质量稳定
知名个人Vowgan、JustSleightly、神乐甜狐狸、Liya 荔吖等经验丰富,需核实版本
散落资源单篇博客、单次视频、Reddit / Discord 帖子作为线索,必须用上层来源核实

VRChat 创作圈的几条「不读会绕远路」的资源:

  • VRChat 官方 Discorddiscord.gg/vrchat):最快的实时问答场。#world-creation 频道里多数日常问题几小时内有人答。
  • Creator Forumask.vrchat.com):长期问题归档。比 Discord 检索方便,回答质量高。
  • DeepWikideepwiki.com/vrchat-community/):AI 对官方文档的结构化解读。读官方文档卡时换这里看一遍经常豁然开朗。
  • VRChat 官方 GitHubgithub.com/vrchat-community):Creator Docs 源码、World 模板、UdonSharp 源码都在这里。能看到最新提交是什么时候、最近改了什么。

中文圈的资源单独列:

  • VRCD 文档库docs.vrcd.org.cn):中文社区共建文档,有完整的世界教程系列和 VCC 详解。
  • VRChat 汉化文档中心docs.vrczh.org):官方 Creator Docs 的中文翻译,跟得比较勤。
  • Bilibili 收藏夹:搜「VRChat 世界」「Udon」能找到不少系列教程,新一些的视频通常带了制作日期。

英文圈和日文圈的资源很多,按需要查。但凡是 2022 年之前的内容、或者不写明 SDK 版本的内容,先怀疑再用。

「读别人的代码」是第三部讲过的事。在 VRChat 里有一个变体:「读别人的世界」。

VRChat 有几类公开可学的世界:

VRChat 官方提供了 UdonExampleScene(包含在 World SDK 里)。安装 SDK 之后导入这个场景,能看到官方写好的几十个交互范例:按钮、计数器、同步、Pickup、Station、传送门,每个都是简单完整的小例子。

读这个项目能学到的:官方推荐的 Udon 写法是什么样、组件之间怎么搭。书里没展开的细节多数能在这里找到。

VRChat 上有一些创作者把世界源工程开源出来:

  • VRWorld Toolkitgithub.com/oneVR/VRWorldToolkit):不是世界本身,是一个 Unity 编辑器扩展,但里面对世界各种检查的代码本身就是学习材料。
  • Vowgan 的免费 Prefab(Gumroad 免费区):完整带源工程的世界组件。
  • GitHub 上搜 udonsharp:能找到很多创作者公开的脚本仓库。

读开源世界的方法:

  1. 把工程下载到本地,用书里同一份 SDK 版本打开。
  2. 先 Build & Test 进去玩。先理解这世界做什么,再看代码怎么实现。
  3. 找到关键交互,看挂在哪个 GameObject 上,看 Inspector 里挂了哪几个 UdonSharp 脚本。
  4. 读源码。重点看「这一段做了我之前没想过的事」。

按这个顺序读比直接打开 .cs 文件读快得多。Unity 项目离开了 Hierarchy 上下文,单看代码经常一头雾水。

SDK 上传面板里有个 World Debugging 开关,勾上之后允许其他玩家在你的世界里调试 Udon 脚本(看变量、看事件流)。这是社区互相学习的合规途径——找别人开了 Debugging 的开源世界,进去看一遍 Udon 流程,比单看代码直观。

第四节:碰到新问题时的查资料顺序

Section titled “第四节:碰到新问题时的查资料顺序”
碰到问题
先试一次:能不能用书里学过的知识解决?
↓ 不能
查官方文档对应章节([附录 J · 资料导航](/appendix/resources/))
↓ 没有
搜社区:VRChat Ask Forum、UdonSharp Discord、VR Creators 文档站
↓ 仍没有
在自己工程里做最小复现,Console 红字 + 复现步骤贴到论坛
拿 `Build & Test` 或 ClientSim 结果当最终依据

API 名、参数签名以 udonsharp.docs.vrchat.com 和 IDE 自动补全为准。社区帖子和旧教程可能对应过期 SDK。

第一座世界上线之后,「下一座做什么」这个问题马上来。

几个判断方向:

第一座世界上线的过程里学到的最多的是「平台和工作流」:VCC 怎么用、SDK 怎么打包、Quest 兼容怎么测。这些是一次性投入。

第二座世界沿用同样的工作流,能把心思全放在「设计和体验」上。第二座世界质量通常显著高于第一座。

适合的人:第一座世界做的是 Chill / Gallery / Tool,对结果满意,想再做一座类似但更好的。

第五部讲过八种世界类型。第一座做了 Chill,第二座可以试 Game。第一座做了 Gallery,第二座可以试 Narrative。

代价:换类型几乎等于重头学。Game World 的状态机、网络同步、UI 架构跟 Chill World 的几乎不重叠。

适合的人:第一座做完之后想拓展能力面,不在意速度。

不一定每次都做完整世界。VRChat 圈子里有大量人做的是:

  • 共享 Prefab:通用的 Pickup 系统、按钮系统、状态机模板,发布到 Booth / Gumroad 给其他创作者用。
  • Shader:poiyomi、Liltoon 这种社区 Shader 都是单人或小团队维护的。
  • Unity 编辑器工具:VRWorld Toolkit 这一类辅助工具。
  • 教程内容:写博客、做视频、维护文档。这本书也属于这一类。

适合的人:发现自己更喜欢「让其他创作者更轻松」这件事。

VRChat 上越来越多的世界是团队作品:美术 + 程序 + 音效 + 活动运营。

适合的人:擅长其中一两块,但想做更复杂的世界。一个人撑全场不是必须的。

第六节:书结束之后这本书还能怎么用

Section titled “第六节:书结束之后这本书还能怎么用”

这本书写完会持续更新。但即使停更,作为一份固定快照仍然能用:

  • 当工具书查回某个概念怎么解释(GameObject、Prefab、UdonSharp 的脾气、网络同步、PlayerData 等)。
  • 当某一章某一节的钩子和踩坑预警仍然有效(VRChat 平台基础设计很少改,这些不会过期)。
  • 给身边想入门的朋友递一份。

会过时的部分:

  • 具体的 UI 截图(VRChat SDK 的面板会重排)。
  • 具体的快捷键(VRChat 客户端的快捷键会变)。
  • 具体的 API 名(UdonSharp 偶尔会改名、改签名)。
  • 政策细节(Community Labs 的具体阈值、Creator Economy 的分成、Quest 包大小上限)。

碰到这些过期的部分时,按这一章前面几节的方法重新查一遍当前版本就行。骨架是稳的,细节是动的。

不是通用的「保持热情」「相信自己」这种话。是几个具体动作:

  1. 在常用的浏览器标签里固定收藏creators.vrchat.comudonsharp.docs.vrchat.com、自己加的某个 Discord / 论坛、本书的目录页。每次开始做事前把这几个标签依次扫一眼,比临时搜要快。
  2. 维护一份自己的踩坑笔记。每次踩到坑、查到答案、绕过一个陷阱,写一行到本地一个 Markdown 文件里。三个月后这份笔记是自己最值钱的资料。
  3. 给自己定一个节奏。不是每天写代码,是每周固定时间打开 Unity(哪怕一小时)。VRChat 世界开发是技能型工作,间隔太久会忘工具的具体位置。
  4. 找一两个同行在线。一个能问问题的人。VRChat 的几个 Discord(VRChat 官方、VRCD、各创作者社群)门槛都很低,进去说一句「我在做世界」就有人聊。
  5. 把自己第一座世界的源工程留好。第一座的代码以后回头看会觉得很糙,但那是自己的入门痕迹,第二座、第三座是从那里长出来的。

47 章走完,从「VRChat 是一个别人可以走进来存在的空间」走到「世界发布之后下一座做什么」。

这条路上有些事是可以教的:Unity 怎么用、UdonSharp 怎么写、网络同步是什么、性能怎么压、世界怎么发布。这些书里都讲过。

有些事书教不动:第二座世界做什么、第三座世界做什么、做了五年世界之后还要不要继续做世界。这些是创作者自己一个一个决定攒起来的。

VRChat 世界开发是一件可以做很久的事。第 1 章讲的「人类几万年来一直在做的事」如果有什么意义,意义在这里:构造一个别人可以走进去的空间这件事,在每个时代都有人做,下一代继续会有人做。这本书让其中的一个人少走一段弯路。

剩下的事自己往下走就好。