Unity 에디터와 연동
Author and modify Cloud Code scripts directly within the Unity Editor using the Cloud Code Authoring module.
읽는 시간 3분최근 업데이트: 12시간 전
Cloud Code 패키지와 함께 설치되는 Cloud Code Authoring 모듈을 사용하면 필요에 따라 Unity 에디터에서 직접 스크립트를 저작(authoring)하고 수정할 수 있습니다. 그런 다음 Deployment 패키지를 사용하여 Unity 에디터에서 Unity Cloud Dashboard에 스크립트를 업로드할 수 있습니다.
Unity 에디터 내에 있는 스크립트를 사용하면 사용자는 소스 컨트롤을 클라우드에 있는 버전이 아닌 SSOT(single source of truth)로 취급하여 롤백, 이분화, 기타 일반적인 연산 등의 작업을 간소화할 수 있습니다. 예를 들어 Cloud Code Authoring 모듈을 사용하면 Cloud Code 스크립트와 클라이언트 C# 스크립트 간의 동기화 상태를 더 쉽게 유지할 수 있습니다.
필수 조건
Unity 에디터에서 Cloud Code를 사용하려면 먼저 Cloud Code SDK를 설치하고 Unity Gaming Services 프로젝트를 Unity 에디터에 연결해야 합니다.프로젝트 연결
Unity Gaming Services 프로젝트를 Unity 에디터와 연결합니다. Unity Cloud Dashboard에서 UGS 프로젝트 ID를 확인할 수 있습니다.- Unity 에디터에서 Edit > Project Settings > Services를 선택합니다.
-
프로젝트를 연결합니다.
-
프로젝트에 Unity 프로젝트 ID가 없는 경우 다음 단계를 진행합니다.
- Create a Unity Project ID > Organizations를 선택한 다음 드롭다운 메뉴에서 조직을 선택합니다.
- Create project ID를 선택합니다.
-
Unity 프로젝트 ID가 있는 경우 다음 단계를 진행합니다.
- Use an existing Unity project ID를 선택합니다.
- 드롭다운 메뉴에서 조직과 프로젝트를 선택합니다.
- Link project ID를 선택합니다.
-
프로젝트에 Unity 프로젝트 ID가 없는 경우 다음 단계를 진행합니다.
UnityEditor.CloudProjectSettings.projectId필수 패키지 설치
에디터에서 Cloud Code 스크립트를 생성하려면 다음 패키지를 설치해야 합니다.- Deployment
- Cloud Code(2.1.1 이상)
위 패키지를 설치한 후 다음 단계에 따라 사용 가능한 패키지 목록에 패키지를 추가합니다.
- Unity 에디터의 Package Manager 창에서 + (add) > Add package by name... 을 선택합니다.
- 를 입력합니다.
com.unity.services.deployment - Add를 선택합니다.
- 에도 같은 단계를 반복합니다.
com.unity.services.cloudcode
Unity 에디터에서 저작
Cloud Code Authoring 모듈을 사용하면 Unity 에디터 내에서 바로 Cloud Code 스크립트를 생성, 편집, 배포할 수 있습니다.스크립트 생성
다음 단계를 따라 Cloud Code Authoring 모듈을 사용하여 Cloud Code 스크립트를 생성합니다.- Unity 에디터에서 프로젝트 창을 오른쪽 클릭한 다음, Create > Services > Cloud Code Js Script를 선택합니다.
- C# 스크립트에서와 마찬가지로 스크립트 이름을 지정합니다. Cloud Code 스크립트는 서비스에 업로드할 때 해당 파일 이름을 식별자로 사용합니다.
- Enter 키를 누릅니다.
이제 프로젝트 창과 Window > Deployment를 선택해서 액세스할 수 있는 Deployment 창에서 새로 만든 스크립트를 볼 수 있습니다.
스크립트 편집
다음 두 가지 방법으로 기존 Cloud Code Authoring 스크립트를 편집할 수 있습니다.- 프로젝트 탭에서 기존 스크립트를 더블 클릭합니다.
- Deployment 창에서 기존 스크립트를 찾아 오른쪽 클릭한 다음, 표시되는 메뉴에서 Open을 선택합니다.
- Unity 에디터에서 Edit > Preferences... > Cloud Code를 선택합니다.
- Javascript Editor 섹션에서 원하는 JS 에디터의 애플리케이션 경로를 선택합니다.
- Apply를 선택합니다.
- : 에셋의 파일 경로
$(File) - : 프로젝트 디렉토리
$(ProjectPath) - : 솔루션 경로
$(SolutionPath) - : 에디터 실행 경로(Unity 에디터에서 Edit > Preferences... > External Tools를 선택하여 결정)
$(EditorExePath)
-
JetBrains Rider(Windows):
- 애플리케이션:
cmd.exe - 인자:
/C "$(EditorExePath) $(ProjectPath) $(File)"
- 애플리케이션:
-
Microsoft Visual Studio Code:
- 애플리케이션:
Code.exe - 인자:
$(ProjectPath) $(File)"
- 애플리케이션:
스크립트 배포
Deployment 창에서 스크립트를 배포할 수 있습니다. 자세한 내용은 Deployment 패키지 매뉴얼을 확인하십시오.스크립트 파라미터 수정
Unity 에디터에서 Cloud Code 스크립트 파라미터에 액세스하고 이를 수정할 수 있습니다.에디터 인스펙터 창에서 파라미터 액세스
Unity 에디터의 프로젝트 창에서 스크립트를 선택하여 Cloud Code 스크립트의 파라미터를 수정할 수 있습니다. 스크립트 파라미터는 에디터의 인스펙터(Inspector) 창에서 열립니다.
사용할 수 있는 파라미터 유형은 다음과 같습니다.
- 문자열
- 부울
- 숫자
- JSON
- 모두
스크립트 본문에서 파라미터 선언
더 원활하게 Cloud Code 스크립트를 사용하려는 경우, 각 파라미터 이름을 키로, 파라미터 유형을 값으로 포함하는params
예제는 아래와 같습니다.
JavaScript
또는 파라미터를 필수 파라미터로 지정하려는 경우,module.exports.params = { "echo" : "Boolean" }
typerequired기본적으로 파라미터는 필수가 아닙니다. 두 포맷 모두 다음과 같이 원하는 대로 결합할 수 있습니다. JavaScriptmodule.exports = async ({ params, context, logger }) => { return { "value": params["aParam"] };};module.exports.params = { "aParam" : { "type": "String", "required": true } }
스크립트 내 파라미터를 사용하는 경우, 해당 파라미터가 이전에 인스펙터에서 정의한 파라미터를 오버라이드합니다. 스크립트 내 파라미터는 파라미터를 선언하는 것보다 간단하지만, Deployment 패키지를 사용하지 않고 스크립트 내 파라미터를 업데이트하려고 하면 Unity Cloud Dashboard가 파라미터를 파싱하지 않습니다.module.exports = async ({ params, context, logger }) => { var value = params["echo"] ? params["aParam"] : "default"; return { "value": value };};module.exports.params = { "echo" : "Boolean", "aParam" : { "type": "String", "required": true } }
JS 번들
JS 스크립트는
importrequirebundling
JavaScript
다음은 샘플 프로젝트에서 번들링의 예시입니다. lib.jsmodule.exports.bundling = true;
scriptToBundle.jsmodule.exports.helloWorld = "Hello world!";
const lib = require("./lib");module.exports = async ({ params, context, logger }) => { return { "value": lib.helloWorld };};module.exports.bundling = true;
Deployment 창
Deployment 창은 Deployment 패키지의 주요 기능입니다. Deployment 창을 사용하면 단일 통합 인터페이스를 사용하여 배포 요구 사항에 맞춰 모든 서비스에서 배포할 수 있으며, 클라우드 에셋을 각 클라우드 서비스에 업로드할 수 있습니다. 자세한 내용은 Deployment 패키지 매뉴얼을 확인하십시오.Unity 에디터에서의 Cloud Code JavaScript 프로젝트
Unity 에디터에서 Cloud Code JavaScript 프로젝트는 Unity 프로젝트의 루트에 있으며, 그 구조는 다음과 같습니다. ├──Assets│ └──
CloudCode│ └──
cloud_script.js├──
node_modules├──
package.json└──
package-lock.jsonpackage.jsonpackage.jsonpackage-lock.jsonNodeJS
더 많은 툴을 사용하기 위해 개발자는 NodeJS를 설치해야 합니다. NodeJS를 사용하면 자동 완성을 비롯하여 데브 환경에서 주로 쓰이는 여러 기능을 지원할 수 있습니다.자동 완성
JS 자동 완성의 대부분은 typings 프로젝트에서 처리됩니다..d.ts.d.tsnode_modulespackage.jsonnode_modules외부 툴
JS 프로젝트 내에서 적절한npm install ...ESLint
-
를 실행합니다. 이 커맨드는 프로젝트 종속성에 ESLint를 추가합니다.
npm i -D eslint -
프로젝트 루트에 다음을 포함하는 파일을 생성합니다. JSON
.eslint.json{ "env": { "commonjs": true, "es2021": true }, "extends": "eslint:recommended", "parserOptions": { "ecmaVersion": 13 }, "rules": { }} - ESLint를 실행하도록 IDE를 구성합니다. Visual Studio Code의 경우 자동으로 설정되지만, IDE에 따라 추가 설정이 필요할 수 있습니다.
- 이제 ESLint가 구성되어 작동합니다.
eslint:recommendedif (something == -0)Jest
Jest는 JavaScript 테스트를 위한 프레임워크입니다. 다음은 Cloud Code 스크립트의 유닛 테스트를 생성하는 방법에 관한 예시입니다.-
를 실행합니다. 이 커맨드는 Jest 패키지를 설치합니다.
npm install --save-dev jest -
스크립트로 실행되도록 Jest를 구성합니다.
.es10 -
다음 코드 스니핏을 에 추가합니다. JSON
package.json"jest": { "moduleFileExtensions": ["es10", "js"], "testMatch": ["**/*.test.es10"]}
moduleFileExtensionsjses10testMatch.test.es10유닛 테스트 예시
다음 JS 유닛 테스트 예시는 오브젝트를 반환하고 테스트 스크립트의 결과가 동일한지 확인합니다. 모킹(mocking)을 사용하면 더 많은 고급 옵션을 사용할 수 있습니다.테스트 대상 스크립트
Cloud Code에는 다음 서명이 필요합니다. JavaScriptmodule.exports = async ({ params, context, logger }) => { return {value: "1"};};
테스트 스크립트
JavaScriptconst test = require("./jest_01.es10")it("test",async () =>{ expect(await test({})).toMatchObject({value:"1"});});
테스트 진행
커맨드 라인에 다음 커맨드를 사용하여 테스트를 진행합니다.npm run test