跳转到内容

第六部 · 和别人一起

VRChat 世界开发里最让人抓狂、也最不可避免的一段,从一盏「两个人看到不一样」的灯开始。

第四部走完,房间会回应人了:按按钮灯亮、走过去音乐响、抓起小球扔出去。但所有这些反应只发生在按按钮那个人自己的客户端上。

拉一个朋友进同一个世界,按一下开关:自己这边灯灭了,朋友那边灯还亮着。再让朋友抓那个小球:朋友手里的小球到自己这边没动过。世界看起来「撕裂」成了两份。

这是 VRChat 网络模型的默认行为。每台客户端各跑各的脚本,状态变化不会自动广播给其他人。要让所有玩家看到同一件事发生,得显式地告诉 VRChat:这个变化要广播、谁是这件事的主人、后加入的人也要看到。

第六部就讲这件事。从最基础的现象观察起步,一步一步把所有权、同步变量、网络事件、Late Joiner 几件事拆清楚。最后一章用前面的全部知识做一个能跑起来的多人小游戏。

读完这一部,能拿到的:一份清晰的网络同步心智模型;一组能直接复用的同步组件骨架(同步开关、同步状态机、同步计分板);一个真正能拉朋友一起玩的小项目。