๋Œ€์ถฉ ์•„์ดํ…œ์„ ๋งŒ๋“œ๋Š”๋ฐ ํŠน์ • ์•„์ดํ…œ์„ ์–ป์œผ๋ฉด


ํ”ผ๊ฒฉ์‹œ ์ž‘๋™ํ•˜๋Š” ์ด๋ฒคํŠธ์— ๋ฐฉ๋งˆ๋‹ค ํ•œ๋ฒˆ ๋ฐ๋ฏธ์ง€๋ฅผ ๋ง‰์•„์ฃผ๋Š” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ํ–ˆ์„๋•Œ


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๋ฅผ ์ž‘๋™์‹œ์ผœ์คŒ์œผ๋กœ์จ

์ด๋ฒคํŠธ์— ๋”ํ•ด์ฃผ๋Š” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์—ˆ์Œ.


๊ทผ๋ฐ ๋„ˆ๋ฌด ๋ณต์žกํ•œ๊ฑฐ๊ฐ™์•„ ์•„์ดํ…œ๋งˆ๋‹ค ๊ฐœ๋ณ„ ํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ•˜๊ณ  ํšจ๊ณผ๋Š” ๋ญ ํšจ๊ณผ๋งˆ๋‹ค ํ•จ์ˆ˜ ํ•˜๋‚˜์”ฉ ๊ตฌํ˜„ํ•  ์ƒ๊ฐ์€ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์œผ๋‹ˆ๊นŒ


์•”ํŠผ ์ด๋”ด๊ฒŒ ๊ฐ์ฒด์ง€ํ–ฅ ์ฝ”๋”ฉ์ด ๋งž๋‚˜์š”? ใ…‹ใ…‹ใ…‹ใ…‹