# UGS 시작하기

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

여기에서는 Unity Gaming Services를 사용하도록 프로젝트를 설정하는 방법을 설명합니다.

### 필수 조건##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. Unity 에디터 프로젝트에 [프로젝트를 연결](#link-your-project-in-the-unity-editor)합니다.
2. 필요한 UGS 패키지를 [설치](#install-ugs-packages)합니다.
3. SDK의 [네임스페이스를 임포트](#import-sdk-namespace)합니다.
4. 게임 코드에서 [UGS를 초기화](#initialize-unity-services-in-your-game-code)합니다.
5. 첫 번째 Cloud Code 스크립트를 [생성](#create-your-first-cloud-code-script-and-beyond)합니다.

### 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](/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 조직을 포함하여 필요한 필드를 입력합니다.
3. **Connect to 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 Cloud 프로젝트에 연결해야 합니다.

에디터에서 프로젝트를 연결하려면 다음을 수행합니다.

1. **Edit** > **Project Settings** > **Services**를 선택합니다.
2. **Use an existing Unity project ID**를 선택합니다.
3. 드롭다운 메뉴에서 조직과 프로젝트를 선택합니다.
4. **Link project ID**를 선택합니다.

Unity Dashboard에 [프로젝트를 연결](/cloud/projects/configure-project-for-unity-cloud.md)하는 방법에 대해 자세히 알아보십시오.

## UGS 패키지 설치##install-ugs-packages

프로젝트에 구현하려는 서비스에 해당하는 패키지를 설치합니다. UGS에 적용되는 패키지를 보고 설치하려면 다음을 수행합니다.

1. Unity 에디터에서 **Window** > **Package Manager**를 선택합니다.
2. Package Manager에서 **Unity Registry** 목록 뷰를 선택합니다.
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 서비스 초기화##initialize-unity-services-in-your-game-code

Services Core SDK를 초기화한 다음 서비스 기능을 호출해야 합니다. 권장되는 방식은 게임 런타임 초반에, 가능하다면 실행 시 서비스를 초기화하는 것입니다.

> **Note:**
>
> **참고**: `com.unity.services.core` 패키지를 설치하거나 패키지 매니페스트에 추가할 필요는 없습니다. 해당 패키지는 종속된 UGS 패키지를 설치할 때 자동으로 포함됩니다.

게임 코드에서 Unity 서비스를 초기화하려면 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를 초기화합니다. [`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에서 가장 일반적으로 사용되는 방법 중 하나입니다. 이 [Cloud Code 가이드](/cloud-code/scripts/getting-started.md#sdkinstallation)에는 설치, 초기화, 대시보드 구성, 게임 클라이언트에서 간단한 Cloud Code 스크립트를 원격으로 실행하는 방법까지 시작에 필요한 모든 내용이 포함되어 있습니다.

## 다음 단계##next-steps

* UGS 기능을 활용하는 방법에 대한 아이디어를 얻으려면 Unity의 [사용 사례 샘플 프로젝트](/services/solutions/use-cases-project.md)를 참고하십시오.
* [개별 서비스](./_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)을 사용하여 구성 관리 워크플로를 간소화합니다.
