Object3D

이 API는 Scene과 Sprite를 제외한 모든 객체에 추가됩니다.

메소드

.go()

.go(dx, dy, dz)

객체가 즉시 이동합니다.

  • dx : x 방향으로의 거리.

  • dy : y 방향으로의 거리.

  • dz : z 방향으로의 거리.

.move()

.move(dx, dy, dz, duration)

객체가 지정된 시간 동안 이동합니다. 내부적으로 TWEEN을 사용합니다.

  • dx : x 방향으로의 거리.

  • dy : y 방향으로의 거리.

  • dz : z 방향으로의 거리.

duration : 이동하는 데 걸리는 시간. 단위는 초(sec)입니다. 기본값은 1입니다.

.rotate()

.rotate(dx, dy, dz)

객체가 즉시 회전합니다.

  • dx : x축 주위의 회전 각도. 단위는 도(degrees).

  • dy : y축 주위의 회전 각도. 단위는 도(degrees).

  • dz : z축 주위의 회전 각도. 단위는 도(degrees).

.turn()

.turn(dx, dy, dz, duration)

객체가 지정된 시간 동안 회전합니다. 내부적으로 TWEEN을 사용합니다.

  • dx : x축 주위의 회전 각도. 단위는 도(degrees).

  • dy : y축 주위의 회전 각도. 단위는 도(degrees).

  • dz : z축 주위의 회전 각도. 단위는 도(degrees).

duration : 회전하는 데 걸리는 시간. 단위는 초(sec)입니다. 기본값은 1입니다.

.onCollide()

.onCollide(target, callback, trigger)

객체가 대상 객체와 충돌할 때 지정된 함수를 실행하도록 설정합니다. 이 객체와 대상 객체 모두 Physics Body가 활성화 되어있어야 합니다.

  • target : 충돌하는 객체 또는 그 제목.

  • callback : 대상 객체와 충돌할 때 실행할 콜백 함수. this 컨텍스트를 유지하기 위해 화살표 함수 사용을 권장합니다.

  • trigger : 충돌 이벤트가 발생하는 조건. 기본값은 “start”.

    - “start” : 충돌 시작 시 한 번 발생.

    - “collision” : 충돌하는 동안 반복적으로 발생.

    - “end” : 충돌 종료 시 한 번 발생.

.setDynamic()

.setDynamic(boolean)

객체의 움직임 제어 방식을 변경합니다. 객체가 동적이면 그 움직임은 중력을 포함한 힘에 영향을 받으며 물리 엔진에 의해 결정됩니다.
객체가 운동학적이면 스크립트를 통해 위치와 회전을 수동으로 변경해야만 이동할 수 있습니다.
객체는 Physics Body가 활성화 되어있어야 합니다.

  • boolean : true이면 동적으로, false이면 운동학적으로 변경.

.applyForce()

.applyForce(x, y, z)

객체에 힘을 가합니다. 이 객체는 Physics Body가 활성화되어 있고 동적이어야 합니다.

  • x : x축 방향의 힘의 양.

  • y : y축 방향의 힘의 양.

  • z : z축 방향의 힘의 양.

.kill()

객체를 일시적으로 제거합니다.

.revive()

kill() 메소드에 의해 제거된 객체를 복구합니다.

.onClick()

.onClick(callback)

객체를 클릭할 때 실행할 지정된 콜백 함수를 설정합니다.

callback : 클릭할 때 실행할 콜백 함수. this 컨텍스트를 유지하기 위해 화살표 함수 사용을 권장합니다.

.getAudio()

객체의 자식들 중 첫 번째 오디오 객체를 반환합니다. 사운드 에셋을 추가한 후 다음과 같은 방법으로 오디오를 재생/정지할 수 있습니다.

// Sound Asset​
this.getAudio().stop(); // stop audio
this.getAudio().play(); // play audio

Audio 오브젝트에 대한 더 자세한 설명은 THREE-Audio 부분을 참조하세요.

.cloneWithMethods()

해당 오브젝트의 Behavior와 Physics 속성을 제외한 나머지 속성들을 복사하여 새로운 오브젝트를 생성합니다.
이렇게 복제된 오브젝트는 THREE.Object3D현재 페이지에 나열된 속성 및 메소드를 사용할 수 있습니다.
(단, Physics속성은 복사되지 않으므로 .onCollide()는 사용할 수 없습니다.)

⚠️

복제한 오브젝트는 WORLD에 자식으로 추가해 주어야 사용이 가능합니다.

EX
const obj = WORLD.getObject("obj");
const clone_obj = obj.cloneWithMethods();
WORLD.add(clone_obj);
clone_obj.position.set(10, 1, 10);