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์ ์์์ผ๋ก ์ถ๊ฐํด ์ฃผ์ด์ผ ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
const obj = WORLD.getObject("obj");
const clone_obj = obj.cloneWithMethods();
WORLD.add(clone_obj);
clone_obj.position.set(10, 1, 10);