๋์ถฉ ์์ดํ
์ ๋ง๋๋๋ฐ ํน์ ์์ดํ
์ ์ป์ผ๋ฉด
ํผ๊ฒฉ์ ์๋ํ๋ ์ด๋ฒคํธ์ ๋ฐฉ๋ง๋ค ํ๋ฒ ๋ฐ๋ฏธ์ง๋ฅผ ๋ง์์ฃผ๋ ์ฝ๋๋ฅผ ๋ง๋ ๋ค๊ณ ํ์๋
public delegate void DelegateSimple();
public DelegateSimple WhenEnterNewRoom;
public delegate float DamageCalc(float _damage);
public DamageCalc OnPlayerGetDamage;
์ด๋ฐ ๋ธ๋ฆฌ๊ฒ์ดํธ ๋๊ฐ๋ฅผ ๊ตฌํํ๊ณ
bool canIgnore;
public float IgnoreDamageCount(float _damage){
if(canIgnore){
canIgnore = false;
return 0;
{
else{
return _damage
}
}
public void GetIgnoreCount(){
canIgnore = true;
}
์ด๋ฐ์์ผ๋ก ๊ฐ ํจ์๋ฅผ ๊ตฌํํด์ค ๋ค
์์ดํ ์ ํด๋์ค๋ฅผ ์์๋ฐ๋ ๋๋ค๋ฅธ ItemIgnoreOnce๋ผ๋ ํด๋์ค๋ฅผ ๋ง๋ค์ด์
void override AddEvent(){
WhenEnterNewRoom += GetIgnoreCount;
OnPlayerGetDamage += x => IgnoreDamageCount(x);
}
์ด๋ฐ์์ ์ฝ๋๋ก ๋ง๋ค์ด์ ์์ดํ ํ๋์์ ์์ดํ ํด๋์ค์์ AddEvent๋ฅผ ์๋์์ผ์ค์ผ๋ก์จ
์ด๋ฒคํธ์ ๋ํด์ฃผ๋ ์ฝ๋๋ฅผ ๋ง๋ค์์.
๊ทผ๋ฐ ๋๋ฌด ๋ณต์กํ๊ฑฐ๊ฐ์ ์์ดํ ๋ง๋ค ๊ฐ๋ณ ํด๋์ค๋ฅผ ๊ตฌํํด์ผํ๊ณ ํจ๊ณผ๋ ๋ญ ํจ๊ณผ๋ง๋ค ํจ์ ํ๋์ฉ ๊ตฌํํ ์๊ฐ์ ๊ฐ์ง๊ณ ์์์ผ๋๊น
์ํผ ์ด๋ด๊ฒ ๊ฐ์ฒด์งํฅ ์ฝ๋ฉ์ด ๋ง๋์? ใ ใ ใ ใ
๋ธ๋ฆฌ๊ฒ์ดํธ ๋ฒ๋ฆฌ๊ณ ์ก์ ์ด๋ ํํฌ์ฐ์
๊ทธ๊ฑด ๋ ๋ญ์ผ ๋ธ๋ฆฌ๊ฒ์ดํธ ์ค๋ ๊ณต๋ถํด์ ์ ์ฉํด์ ๊ฐ์ ธ์จ๊ฑฐ์ผ ๋จธ๋ฆฌ๊ฐ ๋ถ์ด์ง๋๊ฒ ๋น ๋ฅผ๊ฑฐ๊ฐ์ ์์์
์ ๋ํฐ์ด๋ฒคํธ๊ฐ ํจ์ฌ ๊ฐ๋จํ๋๊น ๊ทธ๊ฑฐ์ฌ์ฉํด๋ณด์์.
ํน์ ์์ดํ ์ ์์ง์ค์ด๋ฉด ๋ฐ๋ฏธ์ง๋ฅผ ๋ฌดํจํ์ํค๊ณ ํ ์ด ์ฌ๋ผ์ง๋๊ฑฐ์?
์๋์ ๋ฐ๋ฏธ์ง๊ฐ ์ฌ๋ผ์ง๋๊ฒ๋๋ค ๋ฐฉ๋ง๋ค ํ๋ฒ
Func์ฐ๋ฉด ์์ธ๋ก ์ฝ๊ฒ ํด๊ฒฐ ๊ฐ๋ฅํ ๋ฏ
https://gall.dcinside.com/mgallery/board/view/?id=game_dev&no=124062&page=1
์ด๋ ต๊ฒ... ํ ํ์๊ฐ ์๋? ๋ฐ๋ฏธ์ง ์ฒ๋ฆฌํ๋ ํจ์๊ฐ ์์๊ฑฐ๊ณ ๊ฑฐ๊ธฐ์ if๋ฌธ ์ฒดํฌ ๋ช๋ฒ ํด์ฃผ๊ณ ๋งต ์ด๋ํ๋ ํจ์๋ ์ค์ค์ด bool ์ฒดํฌ์ข ํด์ฃผ๋ฉด ๋ ํ ๋ฐ
ํผ์ ํ๋ฉด ๊ทธ๊ฒ ๋ง์ง