OasisW매뉴얼 English
섹션 9. 스크립팅 방법 작성 대기 1

새 스크립트 만들고 붙이기

스크립트는 엔티티에 동작을 붙이는 JavaScript 파일입니다. 이 페이지는 새 스크립트 파일을 만들고, 짧은 코드를 넣고, 엔티티에 붙여 Launch로 확인하는 과정을 처음부터 끝까지 따라갑니다. 예제는 상자를 1초에 90도씩 돌리는 spin 스크립트입니다.

이 페이지의 실측은 2026-10-29 oasisw.ai 에디터(macOS Chrome)에서 새 프로젝트 1개로 한 것입니다. 별도 표시가 없는 동작은 1회 확인했습니다.

시작하기 전에

  • 스크립트를 붙일 엔티티가 씬에 있어야 합니다. 이 페이지는 Box 엔티티를 씁니다. 만드는 법은 엔티티 만들기·복제·삭제에 있습니다.
  • 스크립트 파일은 프로젝트의 모든 씬이 함께 씁니다. 붙인 정보(어느 엔티티에 붙었는지, 속성 값)는 씬마다 따로입니다.

1스크립트 파일 만들기

  1. ASSETS 패널 제목 줄의 +를 누르고 Script를 고릅니다.
  2. Enter script filename: 칸이 열립니다. spin을 넣고 Enter를 누릅니다. lifeTest.js처럼 .js까지 넣어도 같은 이름의 파일이 생겼습니다(2026-10-30).
  3. ASSETS에 spin.js가 생깁니다.
ASSETS 패널 위에 열린 Enter script filename 입력 칸
① 파일 이름 칸

새 파일에는 initialize와 update가 들어 있는 기본 코드가 처음부터 적혀 있습니다. 기본 코드의 주석은 한국어입니다.

2파일 정보 보기

ASSETS에서 spin.js를 한 번 누르면 오른쪽 패널이 SCRIPT로 바뀝니다.

spin.js를 고른 화면. 오른쪽 SCRIPT 패널에 ID, Name, Size, DOWNLOAD, EDIT, SCRIPTS, PARSE, CODE가 보인다
① 고른 스크립트 파일 ② EDIT(코드 편집기 열기) ③ PARSE
칸뜻
Name, Size, Created파일 이름, 크기, 만든 시각
DOWNLOAD파일을 내 컴퓨터로 받기
EDIT코드 편집기를 새 탭으로 열기
SCRIPTS이 파일 안에 정의된 스크립트 이름. 여기서는 spin
CODE코드. 판 OasisW 7e2aa65부터는 이 칸에서 바로 고치고 Save로 저장할 수 있습니다(코드 편집기 참고)

파일 이름(spin.js)과 스크립트 이름(spin)은 다릅니다. 엔티티에 붙일 때 고르는 것은 스크립트 이름입니다. 스크립트 이름은 코드 첫 줄의 ow.createScript('spin')에서 정해집니다.

3코드 넣기

  1. EDIT를 누릅니다. 코드 편집기가 새 탭으로 열립니다.
  2. 기본 코드를 모두 지우고 아래 코드를 넣습니다.
  3. File → Save File로 저장합니다. 오른쪽 아래가 저장됨이 되면 저장된 것입니다.
var Spin = ow.createScript('spin');

// 1초에 몇 도 돌지 정합니다
Spin.attributes.add('speed', { type: 'number', default: 90, description: '1초에 도는 각도(도)' });

// 매 프레임 Y축으로 돌립니다
Spin.prototype.update = function (dt) {
    this.entity.rotate(0, this.speed * dt, 0);
};
줄뜻
ow.createScript('spin')spin이라는 스크립트를 정의합니다
attributes.add('speed', …)에디터에서 바꿀 수 있는 값 speed를 만듭니다. 처음 값은 90입니다
update(dt)매 프레임 실행됩니다. dt는 지난 프레임부터 흐른 시간(초)입니다
this.entity.rotate(…)스크립트가 붙은 엔티티를 돌립니다

편집기 화면과 저장 방법은 코드 편집기에 자세히 있습니다.

4엔티티에 붙이기

  1. 에디터 탭으로 돌아와 HIERARCHY에서 Box를 고릅니다.
  2. ENTITY 패널 맨 아래 + ADD COMPONENT를 누르고 Script를 고릅니다. SCRIPT 컴포넌트가 생깁니다.
  3. SCRIPT 안의 + ADD SCRIPT를 누릅니다. 프로젝트의 스크립트 이름 목록과 + Create Script가 나옵니다.
  4. spin을 고릅니다.
+ ADD SCRIPT를 누르자 나온 목록. spin과 + Create Script
① 만들어 둔 스크립트 ② 새 스크립트를 만들면서 붙이기

붙이고 나면 HIERARCHY의 Box 아이콘이 </>로 바뀌고, SCRIPT 안에 spin 줄과 speed 칸(90)이 나옵니다.

spin을 붙인 Box. HIERARCHY 아이콘이 바뀌고 SCRIPT에 spin과 speed 90이 보인다
① 스크립트가 붙은 엔티티 표시 ② 붙인 스크립트 ③ 코드에서 만든 속성

이미 붙인 스크립트는 + ADD SCRIPT 목록에 다시 나오지 않았습니다.

만들면서 바로 붙이기

+ ADD SCRIPT 칸에 아직 없는 이름(예: bounce)을 넣고 + Create Script를 누르면, bounce.js 파일이 ASSETS에 생기고 고른 엔티티에 바로 붙었습니다. 파일 안에는 1단계와 같은 기본 코드가 들어 있습니다. 엔티티를 먼저 정해 두었다면 이 방법이 빠릅니다.

5Launch로 확인하기

맨 위 줄 오른쪽 Launch를 누릅니다. 새 탭에서 상자가 Y축으로 돌기 시작합니다. 실측에서 0.25초마다 22.5도씩, 곧 1초에 90도씩 돌았습니다. speed 칸을 바꾸면 도는 속도가 바뀝니다. 값 바꾸는 법은 스크립트 속성 값 바꾸기에 있습니다.

스크립트 떼기와 파일 지우기

  • 떼기: SCRIPT 안 스크립트 줄의 ⋯ → Remove Script. 그 엔티티에서만 떨어지고 파일은 남습니다.
  • 파일 지우기: ASSETS에서 파일을 고르고 제목 줄의 휴지통을 누릅니다. 'bounce.js' 에셋을 삭제할까요? 확인 창이 나오고 YES를 누르면 지워집니다. 엔티티 삭제와 달리 확인 창이 있습니다.

엔티티에 붙어 있는 스크립트 파일을 지워도 엔티티의 SCRIPT 칸에서 스크립트 줄은 사라지지 않습니다. 2026-10-30 실측에서 줄은 남고, 그 아래에 스크립트 에셋을 찾을 수 없습니다 (삭제됐거나 파싱 전)가 나왔으며 연필(편집)·두 화살표(파싱) 아이콘이 사라졌습니다. Launch는 오류 없이 실행됐지만 그 스크립트는 실행되지 않았습니다(1회). 파일을 지운 뒤에는 남은 줄을 ⋯ → Remove Script로 뗍니다.

AI에게 맡기기

코드를 직접 쓰지 않고 "상자가 제자리에서 계속 돌게 해 주세요"처럼 AI에게 요청할 수도 있습니다. AI는 스크립트를 만들고 붙이는 일까지 함께 합니다. 직접 만든 스크립트와 AI가 만든 스크립트는 같은 방식으로 ASSETS와 SCRIPT 컴포넌트에 나타납니다. 요청 방법은 AI 창 열고 요청 보내기에 있습니다.

작성 대기 위 요청문을 현재 판에서 3회 보내 만들어진 스크립트 이름·붙은 엔티티 기록

확인하기

  • ASSETS에 스크립트 파일이 있습니다.
  • 엔티티의 SCRIPT에 스크립트 줄과 속성 칸이 있습니다.
  • Launch한 게임에서 동작이 보입니다.

막혔을 때

증상원인해결
+ ADD SCRIPT 목록에 스크립트가 없다이미 이 엔티티에 붙어 있거나, 코드의 createScript 이름이 다릅니다SCRIPT 안을 내려 보고, 파일의 SCRIPTS 칸에서 스크립트 이름을 확인합니다
속성 칸이 나오지 않는다코드를 저장하지 않았습니다코드 편집기 오른쪽 아래가 저장됨인지 봅니다
Launch했는데 움직이지 않는다코드에 오류가 있거나 스크립트가 꺼져 있습니다게임 탭 아래의 오류 줄을 봅니다(코드 편집기 참고). 스크립트 줄과 SCRIPT 컴포넌트의 ON을 봅니다

다음으로

원고 scripting/create-attach-script.html