2D ๊ฒŒ์ž„์—์„œ ๋ฐ๋ฏธ์ง€ ์‹œ์Šคํ…œ ๋งŒ๋“ค๊ณ  ์žˆ์Œ.


ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ณต๊ฒฉํ‚ค ๋ˆ„๋ฅด๋ฉด ์ •ํ•ด์ง„ ์œ„์น˜์— DamageObject๊ฐ€ ์ƒ๊ธฐ๊ณ 

์ด ์˜ค๋ธŒ์ ํŠธ๋Š” ์ž๊ธฐํ•œํ…Œ ๋‹ฟ์€ ICombatable ์˜ค๋ธŒ์ ํŠธ์˜ hp๋ฅผ ํ•œ ๋ฒˆ ๊นŽ์Œ.


๊ทธ๋ž˜์„œ DamageObject์— Collider ๋ถ™์—ฌ์„œ OnTriggerEnter, OnTriggerExit ํ•จ์ˆ˜๋กœ ๋‹ฟ์€ ์˜ค๋ธŒ์ ํŠธ์— ๋”ฑ ํ•œ ๋ฒˆ๋งŒ ๋ฐ๋ฏธ์ง€๋ฅผ ์ฃผ๋ ค๊ณ  ํ•จ.


์ฝ”๋“œ๊ฐ€


class DamageObject(){

List<ICombatable> ๋‹ฟ์€์˜ค๋ธŒ์ ํŠธ๋ฆฌ์ŠคํŠธ

Affect(){

ย  ๋ฆฌ์ŠคํŠธ์— ์žˆ๋Š” ๋ชจ๋“  ํ•ญ๋ชฉ์—๊ฒŒ ๋ฐ๋ฏธ์ง€ ์คŒ

}


OnTriggerEnter2D(){

ย  ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€

}

OnTriggerExit2D(){

ย  ๋ฆฌ์ŠคํŠธ์—์„œ ์‚ญ์ œ

}

}

ย ย 


์ด๋ ‡๊ฒŒ ๋ผ์žˆ์Œ


ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ณต๊ฒฉํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด DamageObject๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•˜๊ณ  Affect()๋ฅผ ์‹คํ–‰ํ•จ.


๋ฌธ์ œ๋Š”ย OnTriggerEnter2D, OnTriggerExit2D๊ฐ€ Affect๋ณด๋‹ค ๋’ค์— ์‹คํ–‰๋จ. ์ฐพ์•„๋ณด๋‹ˆ LastUpdate๊นŒ์ง€ ๋‹ค ์‹คํ–‰๋œ ๋‹ค์Œ์— ๋งˆ์ง€๋ง‰์œผ๋กœ ํŠธ๋ฆฌ๊ฑฐ ์ด๋ฒคํŠธ๊ฐ€ ์‹คํ–‰๋œ๋‹คํ•จ.

๊ทธ๋ž˜์„œ Affect()๋ฅผ ์‹คํ–‰ํ•  ๋• ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋น„์–ด์žˆ์–ด์„œ ์•„๋ฌด์—๊ฒŒ๋„ ๋ฐ๋ฏธ์ง€๋ฅผ ์•ˆ ์ž…ํž˜.


์—ฌ๊ธฐ์„œ ๊ผญ ํŠธ๋ฆฌ๊ฑฐ ์ด๋ฒคํŠธ๊ฐ€ ์‹คํ–‰๋œ ํ›„์— Affect()๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์€๋ฐ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋ƒ


๋”ฑ ์–˜๊ฐ€ ์ƒ์„ฑ๋œ ๊ทธ ํ”„๋ ˆ์ž„์— ๋‹ฟ์•„์žˆ๋Š” ์˜ค๋ธŒ์ ํŠธ๋“คํ•œํ…Œ๋งŒ ๋ฐ๋ฏธ์ง€๋ฅผ ์ฃผ๊ณ  ์‹ถ์Œ.