入门指南
本文档描述了使用 Mirror 创建多人游戏的步骤。这里描述的过程是一个简化的、更高级的版本,实际游戏的过程并不总是完全像这样,但它提供了一个基本的流程指南。
视频教程
查看这些精彩视频,向您展示如何开始使用 Mirror。
脚本模板
更快地创建新的网络行为和其他常见脚本
查看脚本模板。
网络管理器设置
从资源 > 创建 > Mirror菜单创建一个新的网络管理器。
在场景中添加一个新的游戏对象,并将其重命名为“NetworkManager”。
将新创建的网络管理器组件添加到“NetworkManager”游戏对象中。
将NetworkManagerHUD组件添加到游戏对象中。这提供了管理网络游戏状态的默认 UI。
玩家预制体
找到游戏中玩家游戏对象的预制体,或从玩家游戏对象创建一个预制体
将 NetworkIdentity 组件添加到玩家预制体中
在 NetworkManager 的 Spawn Info 部分设置
Player Prefab为玩家预制体如果场景中存在玩家游戏对象实例,则将其移除
查看玩家对象以获取更多信息。
玩家移动
将 NetworkTransform 组件添加到玩家预制体中
在组件上勾选 Client Authority 复选框。
更新输入和控制脚本以尊重
isLocalPlayer重写 OnStartLocalPlayer 以控制场景中的主摄像机给玩家使用。
例如,此脚本仅处理本地玩家的输入:
基本玩家游戏状态
将包含重要数据的脚本制作为 Network Behaviours(网络行为)而不是 MonoBehaviours(单体行为)
将重要成员变量制作为 SyncVars(同步变量)
参见状态同步。
远程操作
将执行重要操作的脚本制作为 Network Behaviours(网络行为)而不是 MonoBehaviours(单体行为)
将执行重要玩家操作的更新函数制作为 commands(命令)
参见远程操作。
非玩家 GameObjects
修复非玩家预制件,如敌人:
添加 NetworkIdentity(网络标识)组件
添加 NetworkTransform(网络变换)组件
使用 NetworkManager(网络管理器)注册可生成的预制件
更新包含游戏状态和操作的脚本
生成器
可能将生成器脚本更改为 NetworkBehaviours(网络行为)
修改生成器仅在服务器上运行(使用 isServer 属性或
OnStartServer()函数)为创建的游戏对象调用
NetworkServer.Spawn()
玩家生成位置
添加一个新的游戏对象并将其放置在玩家的起始位置
在新游戏对象上添加 NetworkStartPosition(网络起始位置)组件
最后更新于
这有帮助吗?