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

스크립트 속성 값 바꾸기

스크립트에는 코드를 고치지 않고 에디터에서 바꿀 수 있는 값이 있습니다. 이 값을 스크립트 속성(attribute)이라고 합니다. 공의 속도, 모을 별의 개수, 승리 문구처럼 AI가 만든 게임의 많은 설정이 속성으로 들어 있습니다. 이 페이지는 속성 값을 찾아 바꾸는 방법과, 바꾼 값이 게임에 어떻게 반영되는지 설명합니다.

이 페이지의 실측은 2026-10-29 oasisw.ai 에디터(macOS Chrome)에서 AI로 만든 별 모으기 게임(tut-1027-3)으로 한 것입니다. 값을 바꿔 확인한 뒤 원래 값으로 되돌렸습니다.

시작하기 전에

  • 속성은 스크립트가 붙은 엔티티의 ENTITY 패널, SCRIPT 컴포넌트 안에 있습니다. HIERARCHY에서 이름 앞에 </> 아이콘이 있는 엔티티가 스크립트가 붙은 엔티티입니다.
  • 어느 엔티티에 어떤 스크립트가 붙었는지 모르면 HIERARCHY 검색의 ▾에서 Script Name을 켜고 찾습니다. 방법은 HIERARCHY 패널에 있습니다.

에디터에서 직접 하기

1. 속성 찾기

  1. HIERARCHY에서 엔티티를 고릅니다. 예: Ball.
  2. 오른쪽 ENTITY 패널을 아래로 내려 SCRIPT 컴포넌트를 찾습니다.
  3. SCRIPT 안에 붙은 스크립트마다 이름 줄(예: recipePlayer)이 있고, 그 아래에 속성 이름과 값 칸이 나옵니다.
Ball 엔티티의 SCRIPT 컴포넌트. recipePlayer 스크립트의 style, speed, jumpSpeed, fallLimit 속성
① SCRIPT 컴포넌트 ② 스크립트 이름 ③ 편집(코드 편집기 열기) ④ 파싱 ⑤ 속성 값 칸

속성 이름에 마우스를 올리면 이름, 값의 종류({Number} 등), 설명이 나옵니다. 설명은 스크립트 코드에 적힌 것입니다. AI가 만든 스크립트에는 영어 설명이 들어 있었습니다.

speed 속성 이름 위에 뜬 설명 상자. speed, {Number}, Move speed in m/s
속성 이름에 마우스를 올리면 나오는 설명

2. 값 바꾸기

  1. 값 칸을 누르고 새 값을 넣습니다.
  2. 숫자 칸은 Tab이나 Enter, 글자 칸은 Enter를 누릅니다. 맨 아래 줄 오른쪽에 Update Component가 나옵니다.
  3. Esc로 칸에서 나옵니다.

목록에서 고르는 속성도 있습니다. recipePlayer의 style은 roll, platformer, topdown, runner 가운데 하나를 고르는 칸이었습니다.

3. Launch로 확인하기

바꾼 값은 바로 저장되고, 다음 Launch부터 게임에 쓰입니다. 실측에서 Ball의 speed를 7에서 14로 바꾸고 Launch를 누르자, 열린 게임 안에서 speed가 14였습니다(1회). 이미 열려 있는 게임 탭은 새로 고쳐야 바뀐 값으로 다시 시작합니다. 실행 방법은 Launch로 실행하기에 있습니다.

코드의 default보다 엔티티의 값이 먼저다

속성은 스크립트 코드에서 attributes.add로 정의되고, 각 속성에는 default 값이 있습니다. 그러나 게임이 실제로 쓰는 값은 엔티티의 SCRIPT 칸에 들어 있는 값입니다.

코드 편집기에서 연 recipePlayer.js. speed 속성의 default가 5로 적혀 있다
① 스크립트 이름 정의 ② speed의 default: 5

실측한 recipePlayer.js에서 speed의 default는 5였지만, AI는 Ball의 칸에 7을 넣어 두었습니다. 칸 값을 14로 바꾸자 게임은 14를 썼습니다. 따라서 값을 바꿀 때는 코드의 default가 아니라 엔티티의 칸을 고칩니다. 코드의 default를 고쳐도 이미 붙어 있는 엔티티의 칸 값은 바뀌지 않습니다. 2026-10-29 실측에서 AI에게 spin.js의 default를 90에서 45로 바꾸게 하자, 파일은 45가 됐지만 이미 spin을 붙인 Box와 YellowSphere는 게임 안에서 계속 90이었습니다. AI는 "두 엔티티 모두 절반 속도로 회전"한다고 보고했지만 사실과 달랐습니다.

글자와 이름도 속성에 있다

화면에 나오는 문구나 다른 엔티티의 이름도 속성으로 들어 있는 경우가 많습니다. 실측한 게임에서는 UI 엔티티의 starCollector 스크립트에 다음 속성이 있었습니다.

속성값쓰임
playerNameBall별을 먹는 엔티티의 이름
total10모을 별의 개수
reach1.9별을 먹는 거리
spinSpeed90별이 도는 속도
winMessageClear! All stars collected!다 모았을 때 나오는 문구
UI 엔티티의 starCollector 스크립트 속성. winMessage 칸에 Stage Clear!를 넣은 상태
① 다른 엔티티를 이름으로 가리키는 속성 ② 승리 문구 속성

winMessage를 Stage Clear!로 바꾸고 Launch하자 게임 안의 값도 Stage Clear!였습니다(1회). 한편 에디터 뷰포트의 글자는 바뀌지 않았습니다. 이 게임은 화면 글자 엔티티의 Text 칸이 아니라 스크립트 속성에서 문구를 가져와 실행 중에 덮어쓰는 것으로 보입니다(이전 판 에디터에서도 같은 구조를 관측). 그래서 문구를 바꾸려면 글자 엔티티의 Text 칸이 아니라 스크립트 속성을 고칩니다.

스크립트 줄의 버튼

버튼하는 일
연필(편집)코드 편집기를 새 탭으로 열고 그 스크립트 파일을 보여 줍니다
두 화살표(파싱)코드를 다시 읽어 속성 목록을 갱신합니다. 스크립트를 고친 뒤 바로 반영해 확인하고 싶을 때 씁니다. 저장만 해도 새 칸이 나오는 경우가 많아 자주 쓰지는 않습니다(코드 편집기 참고)
ON이 스크립트만 끄고 켭니다
⋯Copy Script, Remove Script, Copy Attributes, Paste Attributes
starCollector 스크립트의 ⋯ 메뉴. Copy Script, Remove Script, Copy Attributes, Paste Attributes
스크립트 줄의 ⋯ 메뉴

AI에게 맡기기

값 하나를 바꾸는 일은 손이 빠릅니다. 몇 초면 끝나고, 바꾼 칸만 바뀝니다. 어떤 속성이 무엇을 정하는지 모를 때는 AI에게 설명만 부탁할 수 있습니다. 이때는 고치지 말라고 함께 적습니다. 방법은 고치기 요청 보내기의 「설명만 원할 때」에 있습니다.

작성 대기 "속성 값의 위치를 알려 주세요" 요청문을 현재 판에서 3회 보내 결과 기록

확인하기

  • SCRIPT 칸의 값이 바뀌었는지 봅니다.
  • Launch로 실행해 바뀐 동작을 확인합니다. 열어 둔 게임 탭은 새로 고칩니다.

막혔을 때

증상원인해결
코드의 default를 고쳤는데 게임이 그대로다엔티티 칸에 들어 있는 값이 먼저 쓰입니다엔티티의 SCRIPT 칸을 고칩니다
화면 글자의 Text 칸을 바꿨는데 게임에서는 원래 문구가 나온다스크립트가 실행 중에 문구를 덮어씁니다문구를 가진 스크립트 속성(예: winMessage)을 고칩니다
속성 이름만 보고 뜻을 모르겠다이름이 영어 약어입니다이름에 마우스를 올려 설명을 봅니다
값을 바꿨는데 열어 둔 게임이 그대로다게임 탭이 바꾸기 전 상태로 실행 중입니다게임 탭을 새로 고치거나 Launch를 다시 누릅니다
json 속성의 칸이 0이나 빈칸으로 보인다에디터 칸에는 코드의 default가 보이지 않습니다칸을 고치지 않았다면 실행할 때 코드의 default가 쓰입니다. Launch해서 확인합니다(스크립트 속성 정의하기)

다음으로

원고 scripting/edit-attributes.html