云代码
云代码是一种无服务器计算服务,允许您在云中编写和运行代码。您可以使用 Unity 的云代码在完全托管的基础架构上编写无状态服务器端代码。云代码是一种完全托管的服务,可自动扩展以满足您的流量需求。您可以专注于游戏逻辑的开发,并将其与客户端隔离以防止作弊。
云代码与其他 Unity 服务完全兼容,例如 远程配置、云存档、经济 和 排行榜。
将云代码与其他 Unity 服务结合使用,创建完整的游戏后端,并部署游戏内经济、玩家数据存储和动态设置配置等解决方案,同时确保您的游戏逻辑安全。
Cloud Code C# modules cannot use classes from the UnityEngine
namespace or anything else in the Unity's scripting API. This is because Cloud Code uses the open-source .NET runtime. This is separate from the Unity runtime and does not rely on any of its scripting backends.
使用云代码的解决方案
问题 | 解决方案 |
---|---|
您需要将代码部署到实时游戏中,而无需推出客户端更新,因为这需要玩家更新他们的安装。 | 使用云代码更新您的游戏逻辑,而无需玩家进行更新。 |
您希望确保恶意玩家无法更改客户端代码、更改其状态或作弊。您可能还希望防止玩家对您的游戏逻辑进行逆向工程。 | 使用云代码以确保您的游戏逻辑在安全的沙盒中运行,并与客户端分离。 |
您希望使用多个在线服务,但不希望游戏感觉迟钝,并且希望在与更多服务器端组件集成时易于在游戏客户端上编写。 | 利用云代码与其他 Unity 服务集成,并编写关联多个组件的代码。 |
您需要管理基础架构以运行您的游戏逻辑,并对其进行扩展以满足您的流量需求。 | 使用云代码在完全托管的基础架构上编写无状态服务器端代码。 |
您不希望在游戏没有流量时为未使用的资源付费。 | 使用云代码以确保您只为使用的资源付费。 |
您需要一个解决方案来编写关联多个组件的代码,而无需担心身份验证或兼容性。 | 使用云代码编写与其他 Unity 服务集成的代码,并内置兼容性。 |
云代码示例
以下教程展示了如何将云代码触发器与其他 UGS 产品结合使用以实现特定结果。
Note: For more advanced sample projects, you can refer to the UGS use cases sample project.
教程 | 服务 |
---|---|
在赛季结束时用游戏内货币奖励排名靠前的玩家 | 排行榜 经济 |
使用默认配置值初始化新注册的玩家 | 身份验证 云存档 |
向分数被超越的玩家发送推送消息 | 排行榜 |
向加入大厅的所有玩家宣布升级 | 云存档 大厅 |
针对单个玩家调整游戏难度级别 | 云存档 排行榜 身份验证 |
将云代码与模块和脚本结合使用
要从游戏中调用云代码,您可以使用集成的 Unity SDK,如果需要在 Unity 编辑器之外工作,则可以使用云代码客户端 API。
云代码支持两种类型的代码:云代码 C# 模块和云代码 JavaScript 脚本。
要选择适合您需求的方法,请查看以下概述。
云代码 C# 模块 | 云代码 JavaScript 脚本 | |
---|---|---|
运行时 | .NET 9 | Node.js 14 |
语言 | C# | JavaScript |
部署 | 编辑器、命令行 或 管理 API。 | 编辑器、控制面板、命令行 或 管理 API。 |
运行 | SDK 或 运行时 API。 | SDK 或 运行时 API。 |
外部库支持 | NuGet 包管理器 和 公共互联网端点 | 公共互联网端点. |
Cloud Code C# modules cannot use classes from the UnityEngine
namespace or anything else in the Unity's scripting API. This is because Cloud Code uses the open-source .NET runtime. This is separate from the Unity runtime and does not rely on any of its scripting backends.
云代码接口
有多种方法可以使用云代码集成和管理您的应用程序
接口 | 支持 | 描述 | 用法 |
---|---|---|---|
云代码 SDK | 脚本和模块。 | 用于将 Unity 项目与云代码集成的软件开发工具包 (SDK)。 | 使用 SDK 从 Unity 运行时调用模块端点或调用脚本。 |
Unity 云控制面板 | 脚本和有限的模块支持。 | 基于 Web 的界面,用于管理云代码配置和设置。 | 创建、预览和测试运行脚本以及预览模块。 |
Unity 游戏服务命令行界面 | 脚本和模块。 | 用于管理云代码配置和设置的命令行界面。 | 将云代码集成到 CI/CD 中,并使用基于文件的 workflow 进行迭代,以将云代码与其他 Unity 服务一起部署。 |
云代码管理 API | 脚本和模块。 | 用于管理云代码脚本和模块的 REST API。 | 使用 REST API 创建、读取、更新和删除云代码脚本和模块。 |
云代码客户端 API | 脚本和模块。 | 用于调用云代码脚本和模块端点的 REST API。 | 通过 API 调用调用云代码脚本和模块,并与 Unity 编辑器之外的产品集成。 |
部署 | 脚本和模块。 | Unity 编辑器和 UGS CLI 的扩展。 | 使用部署可以通过文件而不是 Unity 云控制面板配置云代码。将这些文件包含为版本控制的一部分,并最大限度地减少与 Unity 云控制面板的上下文切换。 |
要了解如何部署和运行代码,请按照“后续步骤”部分中的某个选项操作。
后续步骤
云代码 C# 模块 使用类型安全的编程语言和强大的 .NET 组件编写服务器端代码。通过 NuGet 等工具将动态链接库 (DLL) 与项目捆绑在一起,以使用项目中需要的其他内容。 |
云代码 JavaScript 脚本 使用易于迭代的语言编写服务器端代码。如果您有 JavaScript 前端背景,则可以利用相同的生态系统。云代码命令行开箱即用地支持 CommonJS 和 ECMAScript 模块系统,您可以通过它们将代码与可重用部分捆绑在一起。 |