CREATE YOUR WORLD
Scripting
Hello ZEPETOScript
12min
- ZEPETOScript는 ZEPETO World를 만들기 위해 사용되는 스크립팅 언어입니다.
- TypeScript 프로그래밍 언어를 지원합니다.
- ZEPETOScript는 ZEPETO World 내에서 행동과 기능을 정의하도록 설계되었습니다. 포함된 내용은:
- 객체의 이동, 물리학 및 상호작용.
- 사용자 입력을 포함한 이벤트 처리.
- ZepetoScriptBehaviour 클래스에서 상속되며, Unity의 MonoBehaviour 인터페이스와 호환되도록 설계되었습니다.
- 실행을 위해 장면의 활성 GameObjects에 부착할 수 있습니다.
❗️ 주의
- ZEPETO World를 개발할 때 C# 스크립트는 패키지 빌드에 포함되지 않습니다.
- ZEPETOScript만 사용하여 구현해야 합니다.
새로운 ZEPETOScript 파일을 만들기 위해,
[프로젝트]를 클릭하고 패널의 왼쪽 상단 모서리에 있는 [+] 아이콘을 선택하거나 자산 → 생성 → ZEPETO → TypeScript를 클릭하세요.

아래와 같이 새로운 ZEPETOScript가 생성된 것을 볼 수 있습니다.

ZEPETOScript는 구성 요소로 GameObject에 첨부할 수 있으며, ZEPETOScript 파일을 GameObject로 드래그 앤 드롭하면 됩니다.

👍 팁
- 구성 요소를 추가하려면 Add Component > Zepeto Script 옵션을 통해 추가할 수 있습니다.
새로 생성된 ZEPETOScript는 아래에 표시됩니다. Unity의 개발 도구를 사용하여 스크립트를 편집할 수 있습니다.
NewTypescript
1import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
2
3export default class NewTypescript extends ZepetoScriptBehaviour {
4
5 Start() {
6
7 }
8
9}
Start 함수 내에 로그 코드를 추가하여 ZEPETOScript가 작동하는지 테스트해 보세요.
HelloWorld
1import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
2
3export default class HelloWorld extends ZepetoScriptBehaviour {
4
5 Start() {
6 console.log(`log : Hello World`);
7 console.warn(`warn : Hello World`);
8 console.error(`error : Hello World`);
9 }
10
11}
아래의 테스트 코드 출력 화면을 확인하세요.

ZEPETOScript 튜토리얼을 완료한 것을 축하합니다!
이전에 Unity에서 C#으로 개발한 경험이 있는 분들이나 ZEPETO World 개발에 처음인 분들을 위해 ZEPETOScript의 기본을 살펴보겠습니다.
- ZEPETOScript는 TypeScript 문법을 따릅니다.
- 따라서 변수를 선언할 때 타입을 선언하는 것이 필수적입니다.
- 변수 선언 예시:
TypeScript
1import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
2
3export default class HelloZepetoScript extends ZepetoScriptBehaviour {
4
5 // 전역 변수
6 private number: number = 10;
7 private floatNumber: number = 10.5;
8 private word: string = "ZEPETO!";
9 private isTrue: boolean = true;
10 private list : number[] = [1,2,3];
11 private listGeneric : Array<number> = [4,5,6];
12
13 Start() {
14 console.log(this.number);
15 console.log(this.floatNumber);
16 console.log(`안녕하세요, ${this.word}`);
17 console.log(this.isTrue);
18 console.log(this.list);
19 console.log(this.listGeneric);
20
21 // 지역 변수
22 let a = 30;
23 const b = 40;
24 console.log(a);
25 console.log(b);
26 }
27}
- C#의 Dictionary 데이터 유형 대신 TypeScript의 Map 데이터 유형을 사용하여 키-값 쌍을 저장하고 관리하세요.
- 이 데이터 유형은 멀티플레이어 월드를 구현할 때 플레이어 데이터를 관리하는 데 특히 편리합니다.
- Map의 간단한 사용 예시:
TypeScript
1import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
2
3export default class HelloZepetoScript extends ZepetoScriptBehaviour {
4
5 private myMap = new Map<string, string>();
6
7 Start() {
8 this.myMap.set("Player1", "Ze");
9 this.myMap.set("Player2", "pe");
10 this.myMap.set("Player3", "to");
11
12 this.myMap.forEach((value, key) => {
13 console.log(key, value);
14 });
15
16 if(this.myMap.has("Player2")) {
17 let value: string | undefined = this.myMap.get("Player2");
18 console.log(value);
19 }
20
21 this.myMap.delete("Player2");
22
23 console.log(this.myMap.has("Player2"));
24 }
25}
JSON 형식의 데이터로 작업할 때 TypeScript의 내장 함수를 사용할 수 있습니다.
- JSON 문자열을 객체로 변환하기
- 다음 사용: JSON.parse() 메서드입니다.
- 객체를 JSON 문자열로 변환하기
- 다음 사용: JSON.stringify() 메서드입니다.
- JSON 활용 예시:
TypeScript
1import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
2
3export default class HelloZepetoScript extends ZepetoScriptBehaviour {
4
5 Start() {
6 let jsonData = '{"id":"USER1234", "name":"zepeto", "age":15}';
7
8 // JSON 문자열을 객체로 변환하기
9 let userObject : User = JSON.parse(jsonData);
10 console.log(userObject.id);
11 console.log(userObject.name);
12 console.log(userObject.age);
13
14 userObject.age = 16;
15
16 // 객체를 JSON 문자열로 변환하기
17 let newJsonData = JSON.stringify(userObject);
18 console.log(newJsonData);
19 }
20}
21
22class User {
23 constructor(public id: string, public name: string, public age: number) {}
24}
- 자세한 구문은 TypeScript 문서를 참조하십시오.