732 字
3 分钟

My 3D Project 开发日志:玩家、同步与体素平台

My 3D Project 的开发围绕玩家从连接到参与玩法场景的完整链路展开。网络身份负责玩家实例,角色装配处理本地与远程表现,运动和动画分别使用匹配各自职责的同步数据,玩法场景再把角色行为连接到体素平台。

2026 年 9 月:网络玩家与角色装配#

联机基础先打通连接、玩家生成和角色绑定。Mirror 为连接创建 NetworkPlayer 网络根,服务器负责玩家实例的生命周期;客户端根据同步的角色编号选择角色 Prefab 并完成装配。

角色根与视觉角色分开后,同一份角色 Prefab 可以用于拥有者和远程玩家。拥有者启用输入、相机和本地音频组件,远程实例保留模型与动画表现。网络根统一承载联机身份、运动和碰撞,使角色表现不必承担连接管理职责。

2026 年 10 月:移动状态与动画同步#

角色移动由输入读取、控制器和 CharacterMotor 逐层传递。运动器根据相机朝向处理地面移动,并维护加速、跳跃和重力;状态机把移动归纳为地面与空中状态,再交给 Animator 表现。

同步工作随后分成两条。NetworkTransformReliable 传递位置和旋转;CharacterMotionSync 传递动画所需的运动状态、局部方向和权重。远程客户端根据两类数据分别更新角色位置和动作表现,不运行本地角色输入。

2026 年 10 月:网络音频#

角色音效沿网络身份转发。拥有者提交音效类型与触发位置,服务器再把事件发送给观察者,各客户端在对应位置播放声音。音频事件因此与角色本地音频组件分开,网络消息负责描述触发内容,客户端负责实际播放。

2026 年 10 月:场景与体素平台#

运行场景拆成启动场景、常驻场景和玩法场景。网络管理器、场景切换和 UI 留在常驻层,客户端与专用服务器通过统一入口 Additive 加载玩法场景,使本局场景变化不需要重建连接基础。

体素平台从方块布局生成合并表面和分区碰撞。运行时由射线命中定位方块,变化后局部更新对应表面与碰撞,并按需生成碎块表现。方块数据是玩法状态,网格和碰撞是它在场景中的表示;破坏行为通过这两层协同完成。


项目介绍:My 3D Project

My 3D Project 开发日志:玩家、同步与体素平台
https://www.yonagi.world/posts/unity-3d-project-dev-log/
作者
YONAGI
发布于
2026-10-25
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
遠い日に想いを馳せて
Laplacian
封面
遠い日に想いを馳せて
Laplacian
0:00 / 0:00