Signal
์คํฌ๋ฆฝํธ ๊ฐ ํต์ ์ ์ํ ๋ชจ๋์ ๋๋ค.
ํด๋ผ์ด์ธํธ ์คํฌ๋ฆฝํธ ๋๋ ์๋ฒ ์คํฌ๋ฆฝํธ ๊ฐ์ ํต์ ์ ์ฌ์ฉ๋๋ ํด๋์ค์ ๋๋ค. ๋ค๋ฅธ ์คํฌ๋ฆฝํธ์ ์กด์ฌํ๋ ํจ์๋ฅผ ์คํํ๋ ๋ฐ Signal์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํด๋ผ์ด์ธํธ์ ์๋ฒ ์คํฌ๋ฆฝํธ ๊ฐ์ Signal ์ ๋ฌ์๋ Event Manager ๋ชจ๋์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
๋ฉ์๋
.send()
.send(name, params)
name์ ํด๋นํ๋ Signal๋ฅผ ๋ณด๋ ๋๋ค. Signal๋ ํด๋ผ์ด์ธํธ ์คํฌ๋ฆฝํธ ์ ์ฒด ๋๋ ์๋ฒ ์คํฌ๋ฆฝํธ ์ ์ฒด์ ์ ๋ฌ๋ฉ๋๋ค. params ์ต์ ์ ํตํด ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
.addListener()
.addListener(name, callback)
name์ ํด๋นํ๋ Signal๋ฅผ ๋ฐ์์ ๋ ์คํํ ํจ์๋ฅผ ๋ฑ๋กํฉ๋๋ค. ์ ์ก ์ ๋ณด๋ธ ๋งค๊ฐ๋ณ์๊ฐ ์๋ค๋ฉด, ์ด๋ฅผ ๋ฐ์ ์ฝ๋ฐฑ ํจ์๋ก ์ ๋ฌํฉ๋๋ค.
.removeListener()
.removeListener(name, callback)
name์ ํด๋นํ๋ Signal์ ๋ํด ํน์ ํจ์๊ฐ ๋ฑ๋ก๋์ด ์๋ค๋ฉด, ๋ฑ๋ก๋ ํจ์ ๋ชฉ๋ก์์ ์ ๊ฑฐํฉ๋๋ค.
์์
- ObjectA
// This Object listens signal
function Start() {
REDBRICK.Signal.addListener("MOVE", (params) => {
this.move(params.x, params.y, params.z, params.duration);
});
}
- ObjectB
// This Object sends signal
function OnKeyDown(event) {
if (event.code === "KeyM") {
REDBRICK.Signal.send("MOVE", { x: 0, y: 1, z: 0, duration: 1 });
}
}