# Cloud Code

> Write and run server-side code on a fully managed infrastructure that scales automatically to meet your traffic demands.

Cloud Code 是无服务器计算服务，允许您在云中编写和运行代码。您可以使用 Unity Cloud Code 在完全托管的基础架构上编写无状态的服务器端代码。Cloud Code 是一项完全托管的服务，可自动扩展以满足您的流量需求。您可以专注于游戏逻辑的开发，并将游戏逻辑与客户端隔离以防止作弊。

Cloud Code 与其他 Unity 服务（例如 [Remote Config](/remote-config.md)、[Cloud Save](/cloud-save.md)、[Economy](/economy.md) 和 [Leaderboards](/leaderboards.md)）完全兼容并可集成到一起。

通过将 Cloud Code 与其他 Unity 服务结合使用，可以创建完整的游戏后端，并可以部署[游戏内经济](/economy.md)、[玩家数据存储](/cloud-save.md)和[动态设置配置](/remote-config.md)等解决方案，同时确保游戏逻辑安全。

> **Note:**
>
> Cloud Code C# 模块不能使用 `UnityEngine` 命名空间中的类或 \[Unity 脚本 API] 中的任何其他内容。这是因为 Cloud Code 使用开源的 \[.NET 运行时]。此运行时不同于 Unity Runtime，不依赖于其任何 \[脚本后端]。

## 使用 Cloud Code 的解决方案##solutions-with-cloud-code

| 问题                                                     | 解决方案                                       |
| ------------------------------------------------------ | ------------------------------------------ |
| 您需要将代码部署到实时游戏，无需推出客户端更新来让玩家更新其安装。                      | 使用 Cloud Code 更新游戏逻辑，无需玩家进行更新。             |
| 您希望确保恶意玩家无法更改客户端代码、更改其状态或作弊，可能还希望防止玩家对游戏逻辑进行逆向工程。      | 使用 Cloud Code 确保您的游戏逻辑在安全的沙盒中运行，并与客户端隔离。   |
| 您希望使用多个在线服务，不希望游戏体验出现卡顿，希望在与更多服务器端组件集成时能够在游戏客户端进行轻松编码。 | 利用 Cloud Code 与其他 Unity 服务集成，并编写绑定多个组件的代码。 |
| 您需要管理基础架构来运行游戏逻辑，并对其进行扩展以满足您的流量需求。                     | 使用 Cloud Code 在完全托管的基础架构上编写无状态的服务器端代码。     |
| 当游戏没有收到流量时，您不想为未使用的资源付费。                               | 使用 Cloud Code 确保您只需按实际使用量付费。               |
| 您需要一种解决方案来编写绑定多个组件的代码，而无需担心身份验证或兼容性。                   | 使用 Cloud Code 编写具有内置兼容性并与其他 Unity 服务集成的代码。 |

## Cloud Code 示例##cloud-code-samples

以下教程说明了如何将 Cloud Code 触发器与其他 UGS 产品结合使用以实现特定结果。

> **Note:**
>
> **注意**：如需查看更高级的示例项目，您可以参考 [UGS 用例示例项目](/services/solutions/use-cases-project.md)。

| 教程                                                                           | 服务                                                                                     |
| :--------------------------------------------------------------------------- | :------------------------------------------------------------------------------------- |
| [在赛季结束时用游戏内货币奖励排名靠前的玩家](/triggers/tutorials/use-cases/reward-top-players.md) | [Leaderboards](/leaderboards.md)[Economy](/economy.md)                                 |
| [使用默认配置值初始化新注册的玩家](/triggers/tutorials/use-cases/initialize-new-players.md)  | [身份验证](/authentication.md)[Cloud Save](/cloud-save.md)                                 |
| [向分数被超过的玩家发送推送消息](/triggers/tutorials/use-cases/higher-score-message.md)     | [Leaderboards](/leaderboards.md)                                                       |
| [向加入大厅的所有玩家宣布升级](/triggers/tutorials/use-cases/announce-level-up.md)         | [Cloud Save](/cloud-save.md)[Lobby](/lobby.md)                                         |
| [为各个玩家调整游戏难度级别](/triggers/tutorials/use-cases/tune-game-difficulty.md)       | [Cloud Save](/cloud-save.md)[Leaderboards](/leaderboards.md)[身份验证](/authentication.md) |

## 将 Cloud Code 与模块和脚本结合使用##use-cloud-code-with-modules-and-scripts

要从游戏中调用 Cloud Code，您可以使用集成的 Unity SDK，或者如果您需要在 Unity 编辑器外部工作，也可以使用 Cloud Code Client API。

Cloud Code 支持两种类型的代码：Cloud Code C# 模块和 Cloud Code JavaScript 脚本。

要选择符合您需求的方法，请查看以下列表。

|           | Cloud Code C# 模块                                                          | Cloud Code JavaScript 脚本                                                   |
| --------- | ------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| **运行时**   | .NET 9                                                                    | Node.js 14                                                                 |
| **语言**    | C#                                                                        | JavaScript                                                                 |
| **部署**    | [编辑器][modules-editor]、[命令行][CLI-modules]或 [Admin API][AAPI-modules]。      | [编辑器][scripts-editor]、\[后台]、[命令行][CLI-scripts]或 [Admin API][AAPI-scripts]。 |
| **运行中**   | [SDK][SDK-modules] 或 [Runtime API][CAPI-modules]。                         | [SDK][SDK-scripts] 或 [Runtime API][CAPI-scripts]。                          |
| **外部库支持** | [NuGet Package Manager][NuGet-packages] 和[公共互联网终端][External-APIs-modules] | [公共互联网终端][External-APIs]。                                                  |

> **Note:**
>
> Cloud Code C# 模块不能使用 `UnityEngine` 命名空间中的类或 \[Unity 脚本 API] 中的任何其他内容。这是因为 Cloud Code 使用开源的 \[.NET 运行时]。此运行时不同于 Unity Runtime，不依赖于其任何 \[脚本后端]。

[scripts-editor]: /cloud-code/3.0.0/scripts/how-to-guides/write-scripts/unity-editor

[modules-editor]: /cloud-code/3.0.0/modules/how-to-guides/write-modules/unity-editor

[CLI-modules]: /cloud-code/3.0.0/modules/how-to-guides/write-modules/cli#deploy-modules

[CLI-scripts]: /cloud-code/3.0.0/scripts/how-to-guides/write-scripts/cli#deploy-scripts

[AAPI-modules]: /cloud-code/3.0.0/modules/how-to-guides/write-modules/rest-api#deploy-modules

[AAPI-scripts]: /cloud-code/3.0.0/scripts/how-to-guides/write-scripts/rest-api#deploy-scripts

[CAPI-modules]: /cloud-code/3.0.0/modules/how-to-guides/run-modules/rest-api

[CAPI-scripts]: /cloud-code/3.0.0/scripts/how-to-guides/run-scripts/rest-api

[SDK-modules]: /cloud-code/3.0.0/modules/getting-started#deploy-the-module

[SDK-scripts]: /cloud-code/3.0.0/scripts/getting-started#deploying-hello-world

[NuGet-packages]: /cloud-code/3.0.0/modules/how-to-guides/external-services-integration

[External-APIs]: /cloud-code/3.0.0/scripts/how-to-guides/external-services-integration

[External-APIs-modules]: /cloud-code/3.0.0/modules/how-to-guides/external-services-integration

## Cloud Code 界面##cloud-code-interfaces

您可以通过多种方法将您的应用程序与 Cloud Code 集成并管理您的应用程序：

| 界面                                                                                                                                                           | 支持         | 描述                                         | 用法                                                                                                                                                                                                                                |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------- | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Cloud Code SDK                                                                                                                                               | 脚本和模块。     | 用于将 Unity 项目与 Cloud Code 集成的软件开发工具包 (SDK)。 | 使用该 SDK [调用模块终端](/cloud-code/3.0.0/modules/how-to-guides/run-modules/unity-runtime.md)或从 Unity Runtime [调用脚本](/cloud-code/3.0.0/scripts/how-to-guides/run-scripts/unity-runtime.md)。                                              |
| [Unity Dashboard](/services/unity-dashboard-introduction.md)                                                                                                 | 脚本和有限模块支持。 | 用于管理 Cloud Code 配置和设置的基于 Web 的界面。          | [创建](/cloud-code/3.0.0/scripts/how-to-guides/write-scripts/unity-dashboard.md)、预览、[测试运行](/cloud-code/3.0.0/scripts/how-to-guides/test-run.md)脚本和[预览模块](/cloud-code/3.0.0/modules/how-to-guides/write-modules/unity-dashboard.md)。 |
| [Unity Gaming Services（Unity 游戏服务）命令行界面](https://services.docs.unity.com/guides/ugs-cli/latest/cloud-code/Cloud%20Code%20Command%20Line/overview/index.html) | 脚本和模块。     | 用于管理 Cloud Code 配置和设置的命令行界面。               | 将 Cloud Code 集成到 CI/CD 中，并使用基于文件的工作流程进行迭代，以将 Cloud Code 与其他 Unity 服务一起部署。                                                                                                                                                         |
| [Cloud Code Admin API](https://services.docs.unity.com/cloud-code-admin)                                                                                     | 脚本和模块。     | 用于管理 Cloud Code 脚本和模块的 REST API。           | 使用该 REST API 创建、读取、更新和删除 Cloud Code 脚本和模块。                                                                                                                                                                                        |
| [Cloud Code Client API](https://services.docs.unity.com/cloud-code)                                                                                          | 脚本和模块。     | 用于调用 Cloud Code 脚本和模块终端的 REST API。         | 通过 API 调用来调用 Cloud Code 脚本和模块，并与 Unity 编辑器外部的产品集成。                                                                                                                                                                                |
| [部署](/services/ugs-cli-introduction.md#deployments)                                                                                                          | 脚本和模块。     | Unity 编辑器和 UGS CLI 的扩展。                    | 使用部署方式通过文件（而不是 Unity Dashboard）配置 Cloud Code。请将这些文件包含在版本控制中，并使用 Unity Dashboard 尽可能减少上下文切换。                                                                                                                                       |

要了解如何部署和运行代码，请按照[执行下一步](#take-the-next-step)部分中的选项之一操作。

## 执行下一步##take-the-next-step

| ### Cloud Code C# 模块使用类型安全 (type-safe) 的编程语言和功能强大的 .NET 组件编写服务器端代码。使用 NuGet 等工具捆绑动态链接库 (DLL)，获取项目中需要的其他内容。[开始使用 Cloud Code C# 模块。](/cloud-code/3.0.0/modules/overview.md)                                                   |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ### Cloud Code JavaScript 脚本使用易于迭代的语言编写服务器端代码。如果您拥有 JavaScript 前端经验，可以利用相同的生态系统。通过 Cloud Code 命令行已支持的 CommonJS 和 ECMAScript 模块系统，将您的代码与可重用的代码段捆绑在一起。[开始使用 Cloud Code JavaScript 脚本。](/cloud-code/3.0.0/scripts/overview.md) |
