void A()
Void B()
๋ผ๋ ๋๊ฐ์ ํจ์๊ฐ ์์.
A() ๊ฐ ๋ฐ๋ ๋๋ฉด B() ๊ฐ ๋ค์์ ๋ฐ๋๋๊ฒ ํ๊ณ ์ถ์.
๋จ,
A()
{
ย ย B()
}
์ด๋ ๊ฒ ํ๊ณ ์ถ์ง๋ ์์.
์ด ์์์์ ์ด๋ป๊ฒ ํ๋ ๋ฐฉ๋ฒ ์์?
void A()
Void B()
๋ผ๋ ๋๊ฐ์ ํจ์๊ฐ ์์.
A() ๊ฐ ๋ฐ๋ ๋๋ฉด B() ๊ฐ ๋ค์์ ๋ฐ๋๋๊ฒ ํ๊ณ ์ถ์.
๋จ,
A()
{
ย ย B()
}
์ด๋ ๊ฒ ํ๊ณ ์ถ์ง๋ ์์.
์ด ์์์์ ์ด๋ป๊ฒ ํ๋ ๋ฐฉ๋ฒ ์์?
??????? ๋์ฒด ์
์ด๋ฒคํธ ์ฝ๋ฐฑ ์จ์ผํ ๋ฏ
public bool _aTriggered;
A์ bool ๋ฌ๊ณ update๋ฌธ ๋๋ฆฐ ๋ค์์ bool ์ผ์ง๋ฉด b๋ฌ๊ณ b์์ bool ๊บผ์ง๊ณ ํ๋ฉด ๋๊ธด ํ ๊ฒ ๊ฐ์๋ฐ ์ด๋ ๊ฒ ๋นํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ ์ธ ์ด์ ๊ฐ ์์๊น? ๋ค๋ฅธ ๊ธฐ๋ฅ์ด ์๋์ง๋ ๋ชจ๋ฅด๊ฒ ์
"ํ๊ณ ์ถ์ง๋ ์์"์ ์ด์ ๊ฐ ์์ด์ผ์ง ๊ฑ ๋ ๋งด์ด๋ฉด ๋ ๋งด๋๋ก ์ง๋ผ
์ ๋ฐ ํํ์ ์ฑ์ง์ ๊ฐ์ง A() ํจ์๋ค์ B() ์๋ฆฌ์ ๋ชจ๋ ๋ธ๋ฆฌ๊ฒ์ดํธ๋ฅผ ๋ฌ์์ค์ผ ํ ๊ฒ๊ฐ์์ ๊ทธ๋ผ ๋ญ๊ฐ ๋นํจ์จ์ ์ธ๊ฒ ์๋๊ฐํด์
if(A() == true)
B()
์ด๋ ๊ฒ ํ๋์ง
ํจ์ a๊ฐ ์คํ๋๋ค์์ ๋ฌด์กฐ๊ฑด ํจ์ b๋ฅผ ์คํํด์ผํ๋ค๋ฉด ์ฝ๋๊ฐ ๊ผญ ๊ทธ๋ ๊ฒ ๋์ด์ผ ํ ์ด์ ๊ฐ ์์ด????? void AB() { A๋ด์ฉ B๋ด์ฉ } ํ๋ฉด ๋๋๋ฐ
์ต์ ๋ฒ ํจํด์ด๋ผ๊ณ ๊ฒ์ํ๋ฉด ์ ํํ ๋๊ฐ ์ํ๋ ๋ด์ฉ ๋์ด
์ง๋ฌธ์ ์์ง๋ Aํจ์๊ฐ ๋๋๊ณ ๋ฐ๋ก B๊ฐ ์คํํด์ผํ๋๋ฐ, A๊ฐ B๋ผ๋ ํจ์๋ฅผ ๊ตณ์ด ์ฐธ์กฐ ์ํ๊ณ ์ถ์๊ฑฐ์๋? ๊ฐ๋จํ ์ผ์ด์ค๋ A๋ฅผ ์ฝ๋ฃจํด์ผ๋ก ๊ตฌํํ๊ณ , A ์ฝ๋ฃจํด์ ์คํํ ๋ ์ฝ๋ฐฑ ๋งค๊ฐ๋ณ์๋ก B๋ฅผ ์ ๋ฌํ๊ฑฐ๋ yield until A ๋ค์์ B ์คํํ๋ฉด๋จ
๋ฌ์ฑํ๋ ๋ฐฉ๋ฒ ์์ฒด๋ ๋ง์๋ฐ, ์๋ฌด๋ฐ ์์คํ ๋ ์์ด ํ๊ธฐ๋ ํ๋ฌ
๋๋ ๊ตฌ๋ -๋ฐํ ํจํด์ผ๋ก ๋ง๋ ์ด๋ฒคํธ ์์คํ ์ ๊ธฐ๋ฐ์ผ๋ก ์ค๊ณ๋ฅผ ํ๋๋ฐ, A์์ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํค๋ฉด ๋ค๋ฅธ ํ์ํ๊ณณ์์ ์บ์นํ๊ณ B๋ฅผ ํธ์ถํ๋ ์์ผ๋ก ๊ตฌ์ฑํ๊ฒ ๋ ๋ฏ
UniRx ๊ฐ์๊ฑฐ ๋์ ํ๋ฉด ๋ ๋ฏ