# Unity 에디터

> Create and deploy Cloud Code modules using the Unity Editor and Deployment package.

Unity 에디터를 사용하여 Cloud Code 모듈을 생성하고 배포할 수 있습니다. Cloud Code 패키지에는 Cloud Code Authoring 모듈이 포함되어 있으며, 이 모듈을 사용하면 [Deployment 패키지](https://docs.unity3d.com/Packages/com.unity.services.deployment@latest)를 통해 모듈과 상호 작용할 수 있습니다.

> **Note:**
>
> > **Note:**
> >
> > **참고:** Unity 2021.3 이상 버전에서만 모듈과의 Unity 에디터 연동을 지원합니다.

## 필수 조건##prerequisites

아래 단계를 따라 Unity 에디터에서 Cloud Code를 사용합니다.

### 프로젝트 연결##link-project

[Unity Gaming Services 프로젝트](/cloud/projects.md)를 Unity 에디터와 연결합니다. Unity Dashboard에서 UGS 프로젝트 ID를 확인할 수 있습니다.

1. Unity 에디터에서 **Edit** > **Project Settings** > **Services**를 선택합니다.

2. 프로젝트를 연결합니다.

   * 프로젝트에 Unity 프로젝트 ID가 없는 경우 다음 단계를 진행합니다.

     1. **Create a Unity Project ID** > **Organizations**를 선택한 다음 드롭다운 메뉴에서 조직을 선택합니다.
     2. **Create project ID**를 선택합니다.

   * Unity 프로젝트 ID가 있는 경우 다음 단계를 진행합니다.

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

Unity 프로젝트 ID가 표시되고 이제 Unity 서비스에 프로젝트가 연결됩니다.

`UnityEditor.CloudProjectSettings.projectId` 파라미터를 사용하여 Unity 에디터 스크립트에서 프로젝트 ID에 액세스할 수도 있습니다.

### 필수 패키지 설치##install-required-packages

에디터에서 Cloud Code 모듈을 생성하려면 다음 패키지를 설치해야 합니다.

* Deployment
* Cloud Code(2.6.1 이상)

> **Note:**
>
> > **Note:**
> >
> > **참고:** [Unity - 매뉴얼: Package Manager 창](https://docs.unity3d.com/Manual/upm-ui.html)을 확인하여 Unity 패키지 관리자 인터페이스를 익혀 두십시오.

위 패키지를 설치한 후 다음 단계에 따라 사용 가능한 패키지 목록에 패키지를 추가합니다.

1. Unity 에디터에서 **Window** > **Package Manager**를 선택하여 Package Manager 창을 엽니다.
2. Unity 에디터의 Package Manager 창에서 **+ (add)** > **Add package by name...** 을 선택합니다.
3. `com.unity.services.deployment`를 입력합니다.
4. **Add**를 선택합니다.
5. `com.unity.services.cloudcode`에도 같은 단계를 반복합니다.

### .NET 설치##install-net

에디터에서 Cloud Code 모듈을 배포하려면 먼저 [.NET](https://dotnet.microsoft.com/en-us/)를 설치해야 합니다.

다음 단계를 따라 에디터에서 기본 .NET 경로를 설정합니다.

1. Unity 에디터에서 **Preferences** 창을 엽니다.
   * Windows의 경우 **Edit** > **Preferences..** > **Cloud Code**를 선택합니다.
   * macOS의 경우 **Unity** > **Settings..** > **Cloud Code**를 선택합니다.
2. **.NET development environment** 섹션에서 **.NET path**를 .NET가 설치된 경로로 수정합니다.
3. **Apply**를 선택합니다.

## Deployment 창 미리 보기##preview-the-deployment-window

Deployment 창에서는 Cloud Code 모듈을 원격 환경에 배포할 수 있습니다. Deployment 패키지를 설치한 경우, Unity 에디터에서 Deployment 창에 액세스할 수 있습니다.

* Unity 에디터 버전 2021.3 이상인 경우: **Window** > **Deployment**를 선택합니다.
* Unity 에디터 버전 2022 이상인 경우: **Services** > **Deployment**를 선택합니다.

Deployment 창을 사용하려면 먼저 배포할 환경을 선택해야 합니다.

1. Unity 에디터에서 [Deployment 창](#preview-the-deployment-window)을 엽니다.
2. Deployment 창에서 **Deployment Settings**를 선택합니다.
3. 새 Environments 창의 **Editor Environment** 드롭다운에서 환경을 선택합니다.

> **Note:**
>
> > **Note:**
> >
> > **참고**: Deployment 창은 다른 Unity Gaming Services도 지원합니다. Cloud Code 모듈이 다른 서비스를 사용하는 경우, 변경 사항을 동시에 배포할 수 있습니다.

자세한 내용은 [Deployment 창](https://docs.unity3d.com/Packages/com.unity.services.deployment@latest/index.html?subfolder=/manual/deployment_window.html)을 참고하십시오.

## Unity 에디터로 저작##author-within-unity-editor

설치된 Cloud Code 패키지에는 Cloud Code Authoring 모듈이 포함되어 있으며, 이 모듈을 사용하면 Unity 에디터에서 직접 Cloud Code 모듈을 생성하고 배포할 수 있습니다.

그러려면 먼저 에디터에서 모듈 레퍼런스 파일을 생성하고 해당 파일을 모듈 프로젝트에 연결해야 합니다. 구성을 완료하면 Deployment 창에서 모듈을 원격 환경에 배포할 수 있습니다.

### C# 모듈 레퍼런스 파일 생성##create-a-c-module-reference-file

시작하려면 먼저 Cloud Code C# 모듈 레퍼런스 파일을 생성해야 합니다. 이 파일은 솔루션에 대한 레퍼런스로, 배포하려는 C# 모듈 프로젝트가 포함되어 있습니다.

1. Unity 에디터에서 프로젝트 창을 오른쪽 클릭한 다음 **Create** > **Services** > **Cloud Code C# Module Reference**를 선택합니다.
2. 혼동을 피하기 위해 모듈 레퍼런스 이름을 모듈과 동일하게 지정합니다.
3. **Enter** 키를 누릅니다.

> **Note:**
>
> > **Note:**
> >
> > **참고**: 배포된 모듈의 이름은 솔루션의 메인 프로젝트 이름과 동일합니다.


**Frame:**
![](/api/media?file=/cloud-code/media/images/create-ref-file.png)

이제 프로젝트 창과 Deployment 창에서 새로 만든 모듈 레퍼런스를 볼 수 있습니다. 모듈 레퍼런스에 액세스하려면 [Deployment 창](#preview-the-deployment-window)을 엽니다.

### 모듈 연결##link-a-module

C# 모듈 레퍼런스를 모듈에 연결해야 합니다. 기존 솔루션을 연결해도 되고, Unity 에디터에서 새로운 솔루션을 생성해도 됩니다.

#### 새 모듈 생성##generate-a-new-module

모듈 레퍼런스 파일을 사용하면 Deployment 창에서 새 모듈을 생성할 수 있습니다. 생성된 모듈에는 모듈 개발을 시작하는 데 도움이 되는 필수 기본 설정이 포함되어 있습니다.

1. Unity 에디터의 프로젝트 창에서 모듈 레퍼런스 파일을 선택합니다.
2. [인스펙터](https://docs.unity3d.com/Manual/UsingTheInspector.html) 창에서 **Generate Solution**을 선택합니다.

Deployment 창에서 새 모듈을 직접 생성하는 것도 가능합니다.

1. Unity 에디터에서 [Deployment 창](#preview-the-deployment-window)을 엽니다.
2. 모듈 레퍼런스 파일을 오른쪽 클릭하고 **Generate Solution**을 선택합니다.


**Frame:**
![](/api/media?file=/cloud-code/media/images/module-generate-solution.png)

이렇게 하면 프로젝트 디렉토리의 루트에 생성된 모듈이 배치됩니다. Cloud Code는 레퍼런스 파일 이름을 사용하여 기본값 솔루션 경로를 생성합니다. 솔루션 파일 이름은 Cloud Code가 모듈 템플릿을 생성하는 데 사용하는 솔루션 경로입니다.

예를 들어 `test_module.ccmr` 레퍼런스 파일을 호출하는 경우 기본값 솔루션 경로는 `../test_module`이 될 수 있으며, 이를 통해 `test_module.sln`의 솔루션 파일에 모듈이 만들어집니다.

#### 기존 모듈 링크##link-an-existing-module

다른 저작(authoring) 방법을 사용하여 새 모듈을 생성하려는 경우 [모듈 작성](../write-modules)을 참고하십시오. 모듈 레퍼런스에는 기본 솔루션 경로가 있습니다. 이 경로를 기존 모듈 솔루션에 대한 경로로 변경해야 합니다.

1. Unity 에디터의 프로젝트 창에서 모듈 레퍼런스 파일을 선택합니다.
2. [인스펙터](https://docs.unity3d.com/Manual/UsingTheInspector.html) 창에서 기존 모듈 솔루션을 가리키도록 **Solution Path** 필드를 수정합니다.

### 바인딩 생성##generate-bindings

Unity 에디터에서 유형 안전성을 유지하는 클라이언트 코드를 생성할 수 있습니다. 모듈 레퍼런스 파일에서 바인딩을 생성하고, 바인딩을 사용하여 모듈 엔드포인트를 호출할 수 있습니다. 유형 안전성을 유지하는 클라이언트는 게임 클라이언트에서 사용되는 유형과 모듈에서 수신되는 유형을 매치하여 직렬화 문제가 발생하지 않도록 합니다.

다음 위치에서 바인딩을 생성할 수 있습니다.

* 인스펙터 창에서 생성하는 경우:

  1. Unity 에디터의 프로젝트 창에서 모듈 레퍼런스 파일을 선택합니다.
  2. [인스펙터](https://docs.unity3d.com/Manual/UsingTheInspector.html) 창에서 **Generate Bindings**를 클릭합니다.

* Deployment 창에서 생성하는 경우:
  1. Unity 에디터에서 [**Deployment 창**](#preview-the-deployment-window)을 엽니다.
  2. Cloud Code 모듈 레퍼런스를 오른쪽 클릭하고 **Generate Code Bindings**를 선택합니다.

* 툴바에서 생성하는 경우:
  1. **Services** > **Cloud Code**로 이동하여 **Generate CloudCode Bindings**를 선택합니다.
  2. 이렇게 하면 모든 기존 모듈 레퍼런스에 대한 바인딩이 생성됩니다.

* Project Setting에서 생성하는 경우:
  1. Unity 에디터에서 **Edit** > **Project Settings**로 이동합니다.
  2. **Services** > **Cloud Code**로 이동하여 **Generate All Module Bindings**를 선택합니다.
  3. 이렇게 하면 모든 기존 모듈 레퍼런스에 대한 바인딩이 생성됩니다.

Unity 에디터는 `Assets/CloudCode/GeneratedModuleBindings` 디렉토리에 유형 안전성을 유지하는 클라이언트 코드를 생성합니다.

> **Note:**
>
> > **Note:**
> >
> > **참고**: 어셈블리 정의가 있는 경우 생성된 어셈블리 정의를 참조해야 할 수 있습니다. asmdef 레퍼런스에 `"Unity.Services.CloudCode.GeneratedBindings"`를 추가합니다.

생성된 바인딩 사용 방법을 알아보려면 [Unity Runtime에서 모듈 실행](../run-modules/unity-runtime#use-editor-bindings)을 참고하십시오.

#### 제한 사항##limits

바인딩 생성에는 다음 제한 사항이 포함됩니다.

* 필수 파라미터와 선택 파라미터를 구별하지 않습니다.
* Tuple은 파라미터나 반환 값으로 지원되지 않습니다.
* 열거형 멤버의 명시적 값을 정의하는 작업은 지원되지 않으며, 바인딩 생성 후에 표시되지 않습니다.

### 모듈 배포##deploy-modules

[Deployment 창](https://docs.unity3d.com/Packages/com.unity.services.deployment@latest/index.html?subfolder=/manual/deployment_window.html)을 사용하여 모듈을 배포할 수 있습니다. Unity 에디터에서 **플레이** 모드에 진입할 때 자동으로 배포할 수도 있습니다.

모듈을 배포하려면 다음 내용을 따릅니다.

1. Unity 에디터에서 [**Deployment 창**](#preview-the-deployment-window)을 엽니다.
2. 프로젝트 창에서 모듈 레퍼런스 파일을 선택합니다.
3. Deployment 창에서 **Deploy Selected**를 선택합니다.

> **Warning:**
>
> **중요**: 기본적으로 배포는 솔루션의 `Release` 빌드 구성을 기반으로 합니다. 이 구성에는 크기를 축소하기 위한 테스트 프로젝트 등의 추가 콘텐츠를 포함하지 않아야 합니다. 빌드 구성에 관한 자세한 내용은 [Rider](https://www.jetbrains.com/help/rider/Build_Configurations.html)나 [Visual Studio](https://learn.microsoft.com/en-us/visualstudio/ide/understanding-build-configurations?view=vs-2022)의 기술 자료를 참고하십시오.

자세한 내용은 [Deployment 패키지 매뉴얼](https://docs.unity3d.com/Packages/com.unity.services.deployment@latest)을 확인하십시오.

성공적인 배포인 경우 프로젝트 창의 모듈 레퍼런스 창 옆에 초록색 체크 표시가 나타납니다.

모듈 엔드포인트를 호출해서 배포에 성공했는지 확인할 수 있습니다. 템플릿 모듈에는 `SayHello`라는 기본 엔드포인트가 있습니다.

모듈 엔드포인트 호출 방법을 알아보려면 [Unity Runtime에서 모듈 실행](../run-modules/unity-runtime#calling-a-cloud-code-module-endpoint)을 참고하십시오.
