# 开始使用 UGS

> Learn how to set up Unity Gaming Services in your project.

本主题介绍如何设置项目以使用 Unity Gaming Services（Unity 游戏服务）。

### 先决条件##prerequisites

如果您尚未完成以下操作，请在开始入门流程之前完成以下操作：

* [创建 Unity 帐户](/cloud/accounts/create-account.md)。
* 了解[定价与计费](./pricing-and-billing.md)。

### 使用 Unity 引擎的游戏##games-using-the-unity-engine

要开始在 Unity 项目中使用 UGS，请执行以下操作：

1. 创建新的 Unity Cloud 项目。
   * 对于新项目，请在 Unity Hub 中[创建一个项目](#create-a-project-in-the-unity-hub)。此过程会自动在 Unity Dashboard 中创建您的项目。
   * 对于现有的 Unity 项目：
     1. 在 Unity Dashboard 中[创建一个项目](#create-a-project-in-the-unity-dashboard)。
     2. [将项目关联](#link-your-project-in-the-unity-editor)到 Unity 编辑器项目。
2. [安装](#install-ugs-packages)所需的 UGS 包。
3. 为您的 SDK [导入命名空间](#import-sdk-namespace)。
4. 在游戏代码中[初始化 UGS](#initialize-unity-services-in-your-game-code)。
5. [创建](#create-your-first-cloud-code-script-and-beyond)您的第一个 Cloud Code 脚本。

### 使用 REST API 的游戏##games-using-restapi

如果您使用的是其他游戏引擎，可以使用 REST API 在您的游戏中实现 UGS。要开始使用 UGS，请执行以下操作：

1. 在 Unity Dashboard 中[创建一个项目](#create-a-project-in-the-unity-dashboard)。
2. 参阅 REST API [入门](https://services.docs.unity.com/docs)文档。

如果使用 Unreal Engine，也可以在游戏中实现一些 UGS 功能，为此需使用：

* [适用于 Unreal Engine 的 Unity Gaming Services SDK](/matchmaker/ugs-for-the-unreal-engine.md) 实现：
  * [身份验证](/authentication-unreal.md)
  * [Multiplay Hosting](https://www.rocketscience.gg/multiplay/)
  * [Matchmaker](/matchmaker-unreal.md)
* [Vivox Unreal SDK](https://docs.vivox.com/v5/general/unreal/5_23_0/en-us/Default.htm#Unreal/Unreal.htm)

## 在 Unity Hub 中创建一个项目##create-a-project-in-the-unity-hub

为了创建连接到 Unity Cloud 的新项目，最快的方法是通过 Unity Hub。

1. 在 Unity Hub 中，选择 **New project（新建项目）**。
2. 输入必填字段的值，包括您的 Unity Organization（Unity 组织）。
3. 确保选中 \*\*Connect to Unity Cloud（连接到 Unity Cloud）\*\*复选框。

新的 Unity 项目将在 Unity Dashboard 中自动创建，无需手动连接。

您已经可以在 Unity Dashboard 中开始浏览服务。要集成所需的服务，请继续[安装 UGS 包](#install-ugs-packages)。

## 在 Unity Dashboard 中创建一个项目##create-a-project-in-the-unity-dashboard

从 [Unity Dashboard](https://cloud.unity.com/) 管理您的项目和服务。要创建新项目，请执行以下操作：

1. 从主导航菜单中选择 **Projects（项目）**。
2. 在 \*\*Projects（项目）\*\*页面的右上角选择 **New（新建）**。
3. 输入项目名称和 [COPPA](https://www.ftc.gov/enforcement/rules/rulemaking-regulatory-reform-proceedings/childrens-online-privacy-protection-rule) 定位。
4. 选择 **Create（创建）**。

您现在可以在 Unity Dashboard 中配置您的项目，并在与 Unity 编辑器项目集成之前开始配置一些服务。例如，配置 [Economy](/economy.md) 项或创建 [Game Overrides](/game-overrides.md)。接下来，[将 Unity Cloud 项目关联](#link-your-project-in-the-unity-editor)到 Unity 编辑器项目。

了解有关[管理 Unity 项目](/cloud/projects/create-project.md)的更多信息。

## 在 Unity 编辑器中关联您的项目##link-your-project-in-the-unity-editor

要使用 Unity Gaming Services（Unity 游戏服务），您必须在 Unity 编辑器中将项目关联到 Unity Cloud 项目。

要在编辑器中关联您的项目，请执行以下操作：

1. 选择 **Edit（编辑）**> **Project Settings（项目设置）**> **Services（服务）**。
2. 选择 **Use an existing Unity project ID（使用现有 Unity Project ID）**。
3. 从下拉菜单中选择组织和项目。
4. 选择 **Link project ID（关联 Project ID）**。

了解有关[将项目关联](/cloud/projects/configure-project-for-unity-cloud.md)到 Unity Dashboard 的更多信息。

## 安装 UGS 包##install-ugs-packages

安装您想要在项目中实现的服务的相应包。要查看和安装适用于 UGS 的包，请执行以下操作：

1. 在 Unity 编辑器中，选择 **Window（窗口）**> **Package Manager（包管理器）**。
2. 在 Package Manager（包管理器）中，选择 \*\*Unity Registry（Unity 注册表）\*\*列表视图。
3. 搜索包名称，或在注册表列表中找到包。
4. 选择包，然后单击 **Install（安装）**。

您还可以在搜索栏中输入 **services（服务）**，随即将返回除 Remote Config 之外的所有服务的结果。

在编辑器 2022.1 或更高版本中，Package Manager（包管理器）的 \*\*Services（服务）\*\*选项卡会显示所有可用于 UGS 的包。

## 导入 SDK 命名空间##import-sdk-namespace

要访问 SDK 的 API，必须在脚本中导入 SDK 的命名空间。例如，对于 Analytics：

```cs
using Unity.Services.Analytics;
```

## 在游戏代码中初始化 Unity Services##initialize-unity-services-in-your-game-code

在调用任何服务功能之前，必须初始化 Services Core SDK。建议的最佳做法是在游戏运行时尽早初始化服务，最好是在启动时。

> **Note:**
>
> **注意**：您不需要安装 `com.unity.services.core` 包或将其包含在您的包清单中。当您安装依赖于它的 UGS 包时，它会自动被拉取。

要在游戏代码中初始化 Unity Services，请创建一个导入 Services Core 命名空间 (`Unity.Services.Core`) 的脚本，然后调用 `InitializeAsync` 方法。例如：

```cs
using System;
using Unity.Services.Core;
using UnityEngine;

public class InitializationExample : MonoBehaviour
{
	async void Awake()
	{
		try
		{
			await UnityServices.InitializeAsync();
		}
		catch (Exception e)
		{
			Debug.LogException(e);
		}
	}
}
```

此方法用于初始化项目中安装的所有 Unity Gaming Services（Unity 游戏服务）。您可以使用 [`State`](./services-core-api.md#state) 方法在运行时检查游戏的初始化状态。如需了解更多信息，请参阅 [Services Core API](services-core-api#initializeasync) 文档。

## 创建您的第一个 Cloud Code 脚本及其他##create-your-first-cloud-code-script-and-beyond

自定义服务器权威经济逻辑或游戏逻辑是 Unity Gaming Services（Unity 游戏服务）最常见的用途之一。[此 Cloud Code 演练](/cloud-code/scripts/getting-started.md#sdkinstallation)包含快速入门所需的一切信息，包括安装、初始化、后台配置以及从游戏客户端远程执行简单的 Cloud Code 脚本。

## 后续步骤##next-steps

* 参阅 Unity 的[用例示例项目](/services/solutions/use-cases-project.md)，获取 UGS 功能的使用灵感。
* 实现[各项服务](./_index.md)。
* 使用 [UGS CLI](https://github.com/Unity-Technologies/unity-gaming-services-cli) 或 [Deployment（部署）窗口](https://docs.unity3d.com/Packages/com.unity.services.deployment@latest/index.html?subfolder=/manual/deployment_window.html)来简化配置管理工作流程。
