시작하기 (Getting Started)
이 가이드는 OasisW 스크립트를 작성할 때 이해해야 하는 기본 구조와 개념을 다룹니다.
스크립트란 무엇인가요?
스크립트는 씬의 엔티티에 대한 동작을 정의하는 JavaScript 코드 조각입니다. 스크립트는 다음과 같습니다:
- 재사용 가능 - 동일한 스크립트를 여러 엔티티에 연결할 수 있습니다
- 구성 가능 - 속성을 사용하여 엔티티별로 동작을 사용자 정의할 수 있습니다
- 이벤트 기반 - 라이프사이클 이벤트와 사용자 상호작용에 반응합니다
기본 스크립트 구조
어떤 시스템을 사용하든 모든 OasisW 스크립트는 유사한 패턴을 따릅니다:
- Classic
var MyScript = pc.createScript('myScript');
MyScript.attributes.add('speed', { type: 'number', default: 10 });
MyScript.prototype.initialize = function() {
// 스크립트가 시작될 때 한 번 호출됩니다
console.log('Script initialized!');
};
MyScript.prototype.update = function(dt) {
// 매 프레임마다 호출됩니다
this.entity.rotate(0, this.speed * dt, 0);
};
클래식 스크립트의 핵심 포인트:
pc.createScript()를 사용하여 스크립트를 선언합니다.attributes.add()메서드를 사용하여 속성을 추가합니다- 프로토타입에 메서드를 정의합니다
- 파일은
.js확장자를 가집니다
핵심 개념
스크립트 라이프사이클
스크립트는 다른 시점에 자동으로 호출되는 여러 메서드를 가집니다:
initialize()- 스크립트가 시작될 때 한 번 호출됩니다update(dt)- 델타 시간과 함께 매 프레임 호출됩니다postUpdate(dt)- 모든 업데이트가 완료된 후 호출됩니다enable,disable,destroy에 대한 이벤트 핸들러
스크립트 라이프사이클에 대해 더 자세히 알아보세요.
속성
속성을 사용하면 스크립트 속성을 에디터에 노출하여 코드 변경 없이 스크립트를 구성할 수 있습니다:
- Classic
var Configurable = pc.createScript('configurable');
Configurable.attributes.add('speed', { type: 'number', default: 5 });
Configurable.attributes.add('color', { type: 'rgba', default: [1, 0, 0, 1] });
Configurable.attributes.add('target', { type: 'entity' });
스크립트 속성에 대해 더 자세히 알아보세요.
엔티티 접근
모든 스크립트는 this.entity를 통해 연결된 엔티티에 접근할 수 있습니다:
// 엔티티의 위치 가져오기
const position = this.entity.getPosition();
// 자식 엔티티 찾기
const child = this.entity.findByName('ChildName');
// 컴포넌트 접근
const camera = this.entity.camera;
const rigidbody = this.entity.rigidbody;
다음 단계
- 라이프사이클 이해: 코드가 언제 실행되는지 이해하기 위해 스크립트 라이프사이클을 읽어보세요
- 상호작용 추가: 스크립트가 서로 통신하도록 이벤트를 탐색해보세요