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

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

2단계 : ZEPETOScript를 GameObject에 추가하기
앞서 생성한 ZEPETOScript를 GameObject에 Component로 추가하기 위해서는, 해당 GameObject의 Inspector 창에 Add Component 버튼을 클릭해주세요.

Add Component 창에서 Zepeto Script Component를 선택해주세요.

Zepeto Script Component의 Attach Zepeto Script 버튼을 클릭해주세요.

Attach Zepeto Script 창에서 앞서 생성한 HelloWorld ZEPETOScript 파일을 선택해주세요.

아래 화면과 같이 HelloWorld ZEPETOScript 파일을 GameObject에 Component로 추가할 수 있습니다.

3단계 : 테스트 코드 추가 또는 로그 출력
새로 생성된 ZEPETOScript는 아래에 표시됩니다. Unity의 개발 도구를 사용하여 스크립트를 편집할 수 있습니다.
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
export default class NewTypescript extends ZepetoScriptBehaviour {
Start() {
}
}
Start 함수 내에 로그 코드를 추가하여 ZEPETOScript가 작동하는지 테스트해 보세요.
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
export default class HelloWorld extends ZepetoScriptBehaviour {
Start() {
console.log(`log : Hello World`);
console.warn(`warn : Hello World`);
console.error(`error : Hello World`);
}
}
아래의 테스트 코드 출력 화면을 확인하세요.

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