Megacity demo game for UOS
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
Zuoming Dai 763dfe12 fix: update multiverse doc link 11 个月前
Assets feat: press shift to boost (#1) 1年前
Packages Initial commit 1年前
ProjectSettings feat: press shift to boost (#1) 1年前
Readme Initial commit 1年前
UIElementsSchema Initial commit 1年前
.gitattributes Initial commit 1年前
.gitignore feat: press shift to boost 1年前
LICENCE.md Initial commit 1年前
README.md fix: update multiverse doc link 11 个月前
Third Party Notices.md Initial commit 1年前

README.md

Megacity Multiplayer

目录

关于 Megacity Multiplayer

Megacity Multiplayer 是以原始 Megacity 游戏为基础,结合 Multiverse 强大功能而成的动作射击游戏。这款游戏提供了同时支持超过 64 名玩家的沉浸式多人游戏体验。通过最新的 Unity Online Services (UOS),我们致力于优化 Megacity Multiplayer 用户体验。Megacity Multiplayer 展示了如何运用一套网络代码和多人工具、技术和服务,创造出吸引人的、沉浸式的多人体验。

此样例的关键特性包括:

  • 使用 Unity 的实体组件系统(ECS)进行大规模流媒体和渲染
  • 每场游戏对局可支持 64+ 玩家
  • 使用 Netcode for Entities 进行服务器授权的游戏玩法,包括功能预测、插值和延迟补偿
  • 集成 Unity Online Services(UOS)中的 Multiverse 服务
  • 高清渲染管线 (HDRP)
  • 支持 Windows 和 Mac 的跨平台游戏

Megacity Multiplayer 系统要求

Megacity Multiplayer 与 Unity 2022 LTS 兼容,并已在 Windows 和 Mac 上进行过测试。 您可以通过以下链接下载编辑器:

Mac 推荐配置

  • 操作系统:Mac OS X 10.15.7
  • CPU:Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
  • RAM:32GB
  • GPU:AMD Radeon Pro Vega 20
  • 存储空间:20GB

Windows 推荐配置

  • 操作系统:Windows 10 64位
  • CPU:Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
  • RAM:32GB
  • GPU:NVIDIA GeForce GTX 1650 with Max-Q Design
  • 存储空间:20GB

重要提示

Megacity Multiplayer 的文件较大,因此首次克隆和运行可能需要比较久的时间,后续的加载应该会快得多。

首次克隆和加载时间估计:

  • 克隆 Megacity Multiplayer 仓库:最多需要 20 分钟
  • 带库构建的项目打开时间:最多需要 20 分钟
  • 进入主场景时,需要导入子场景:最多需要 20 分钟
  • 进入游戏模式时,需要创建服务器世界:最多需要 30 分钟

克隆项目

要获取 Megacity Multiplayer,您需要先登录 Plastic hub 并 Fork 本仓库到自己组织下,然后在 Unity Hub 中打开该云端项目。

开始

克隆项目后,按照以下步骤开始:

  1. 安装 Unity 2022 LTS 编辑器版本。在安装过程中,请确保包含了 Windows/Mac 的独立支持和专用服务器支持。

modules

  1. 要将项目添加到 Unity Hub,点击 添加 按钮并选择克隆项目的根文件夹。

注意:首次打开项目可能会比较久,因为 Unity 需要导入所有资源。

服务器托管服务 Multiverse

Megacity Multiplayer 使用 UOS 的服务器托管服务 Multiverse 来实现多人联机对战。要开始使用游戏服务器托管,请参考官方 Multiverse 文档

Multiverse 服务配置

要将 Megacity Multiplayer 部署在 Multiverse 服务器上并使用房间管理功能,需要在 MultiverseRoomAPI 中配置以下参数:

private readonly string appId = "Your App ID";
private readonly string appSecret = "Your App Secret";
private readonly string gameRegionId = "Your Region ID";
private readonly string multiverseProfileId = "Your Profile ID";

App ID 和 App Secret 为您创建的 UOS APP 的认证信息。Region ID 为您创建的 Multiverse 服务器的地域 ID。Profile ID 为您创建的 Multiverse 服务器的启动配置 ID。

MultiverseSDK 集成

Megacity Multiplayer 集成了 MultiverseSDK,以便在游戏中使用 Multiverse 服务。要了解如何集成 MultiverseSDK,请参考 MultiverseSDK.cs 以及 服务端 SDK 文档

MultiverseSDK.cs 提供了以下功能:

  • StartMultiverse:创建 Multiverse 实例并标记为 Ready 状态。
  • ShutdownMultiverseInTTL:在 TTL 时间内释放 Multiverse 实例,用于在服务器内没有玩家时释放服务器以节省资源。
  • CancelShutdown:撤销定时释放,用于有新玩家加入房间时撤销释放服务器请求。

Multiverse Room API 集成

Megacity Multiplayer 集成了 Multiverse Room API,以便在游戏中使用房间与大厅服务。要了解如何使用 Multiverse Room API,请参考 MultiverseRoomAPI.cs 以及 ROOM API 文档

MultiverseRoomAPI.cs 提供了以下功能:

  • GetRoomList:获取房间列表。
  • CreateRoom:创建房间。
  • JoinRoom:加入房间。
  • LeaveRoom:离开房间。
  • ConnectByIP:通过IP地址连接到服务器。

构建项目

点击 File -> Build Settings。Platform 选择您想要构建的平台,然后点击 Switch Platform

Build Settings

build

Server

Platform 选择 Dedicated Server,Target Platform 选择 Linux,然后点击 Build 即可构建您的服务器程序。

Client

Platform 选择 Windows, Mac, Linux,Target Platform 选择 Windows/Mac,然后点击 Build 即可构建您的客户端程序。

游戏控制

鼠标和键盘

输入 动作
鼠标移动 / 箭头键 方向控制
左键点击 / 空格键 射击
W/S 前进 / 后退
A/D 方向控制
E/Q 翻滚
Tab 设置
P Netcode 面板统计
无按键操作 自动水平

资源索引

游戏玩法

音频

网络连接

在线服务

UI

工具和实用程序

免责声明

此存储库不接受 Pull Request、GitHub 审核请求或任何其他 GitHub 托管的问题管理请求。

Licence

Megacity Multiplayer 根据 Unity Companion License 进行许可。参见 LICENCE 获取更多法律信息。