LeoECS๋ฅผ ์ด์šฉํ•œ Unity์—์„œ ECS๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ (1)

LeoECS๋ฅผ ์ด์šฉํ•œ Unity์—์„œ ECS๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ (2)

LeoECS๋ฅผ ์ด์šฉํ•œ Unity์—์„œ ECS๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ (3)


์ด๋ฒˆ ์ผ์ง€์—์„œ๋Š” ์ „์— ์–˜๊ธฐํ–ˆ๋˜ ์ฒด๋ ฅ, ์‚ฌ๋ง๊ด€๋ จ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ณ ์ž ํ•œ๋‹ค.

์ผ๋‹จ ๋งŒ๋“  ๊ฒฐ๊ณผ๋ถ€ํ„ฐ ๋ณด์—ฌ์ฃผ์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.




๋•Œ๋ฆฌ๋ฉด ์ฒด๋ ฅ ๋‹ฌ๊ณ , ์“ฐ๋Ÿฌ์ง€๋ฉด ์‹œ์ฒด๊ฐ€ ๊นœ๋ฐ•๊นœ๋ฐ•ํ•˜๋ฉด์„œ ์‚ฌ๋ผ์ง„๋‹ค.


์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ–ˆ๋Š”์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. (์ด์ „ ์ผ์ง€์— ์„ค๋ช…ํ–ˆ๋˜ ๋‚ด์šฉ์€ ์ƒ๋žตํ•œ๋‹ค)



์ฒด๋ ฅ์ปดํผ๋„ŒํŠธ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ๋Œ€์ƒ ๋”๋ฏธ ์—”ํ‹ฐํ‹ฐ์— ๋ถ™์—ฌ์ค€๋‹ค.


ํ”ผ๋ฅผ ๋‹ฌ๊ฒŒํ•˜๋ ค๋ฉด ๋ฐ๋ฏธ์ง€๋ฅผ ์ฃผ๋Š” ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋‹ค.




ํžˆํŠธ๋ฐ•์Šค ์ •๋ณด์— ๋ฐ๋ฏธ์ง€์ •๋ณด(CompEffectDataDamage)๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค.

์ด๋Š” ํžˆํŠธ๋ฐ•์Šค์— ๋‹ฟ์€ ์—”ํ‹ฐํ‹ฐ๋“ค์ด ์ ์šฉ๋˜์•ผ ํ•  ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ™์—ฌ์ค€ ๊ฒƒ์ด๋‹ค.


์ด ํžˆํŠธ๋ฐ•์Šค ๋Œ€์ƒ ์ˆ˜์ง‘์€ HitBoxSystem์—์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.




ํžˆํŠธ๋ฐ•์Šค ์‹œ์Šคํ…œ์˜ ์—ญํ• ์€ ํžˆํŠธ๋ฐ•์Šค ์•ˆ์— ๋“ค์–ด์˜จ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ฐพ์•„์„œ ์ฒ˜๋ฆฌ๋˜์•ผ ํ•  ๋ฐ์ดํ„ฐ ์ฆ‰ (EffectDataDamage๋‚˜ EffectDataActionHit) ๊ฒƒ๋“ค์— ์ ์šฉ๋  ๋Œ€์ƒ์„ ๋ถ™์—ฌ์ฃผ๋Š” ์ผ๋งŒ ํ•œ๋‹ค.์‹ค์ œ ์ด ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋ ์ง€๋Š” ConversionSystem์—์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.




์—ฌ๊ธฐ์„œ ActionHit๋Š” ์•ก์…˜์‹œ์Šคํ…œ์—์„œ ์—์–ด๋ณธ๊ด€๋ จ๋œ ์•ก์…˜์„ ์œ„ํ•œ ์ •๋ณด์ด๋ฉฐ, ์ด๊ฑด ์ด์ „์— ๋งŒ๋“ค์–ด๋‘” ๊ทธ๋Œ€๋กœ์ด๋‹ˆ ๋„˜๊ธฐ๊ณ 

๋ฐ๋ฏธ์ง€๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„  ๋ฐ๋ฏธ์ง€๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์ œ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋  ๋ฐ๋ฏธ์ง€์ปดํผ๋„ŒํŠธ๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๋Œ€์ƒ ์—”ํ‹ฐํ‹ฐ์— ๋ถ™์—ฌ์ฃผ์–ด์•ผ ํ•œ๋‹ค.




๋ฐ๋ฏธ์ง€์ปดํผ๋„ŒํŠธ ์ •๋ณด๋ฅผ ์ด์šฉํ•˜์—ฌ ์‹ค์ œ ์ฒด๋ ฅ์„ ๊นŽ๋Š” ์‹œ์Šคํ…œ์€ ApplyDamageSystem์ด๋‹ค. ๋ฐ๋ฏธ์ง€๊ฐ’์— ๋”ฐ๋ผ ์ฒด๋ ฅ์„ ๊นŽ์œผ๋ฉฐ, ์ฒด๋ ฅ์ด 0์ด๋˜๋ฉด ์ฃฝ์—ˆ์Œ์„ ํ‘œ์‹œํ•˜๋Š” CompDead๋ฅผ ๋ถ™์—ฌ์ฃผ๊ณ , ๊ธˆ๋ฐฉ ์ฃฝ์—ˆ๋‹ค๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.


์บ๋ฆญํ„ฐ ์ฒด๋ ฅ์ด0์ด๋˜๋ฉด ์บ๋ฆญํ„ฐ๊ฐ€ ๋”์ด์ƒ ๊ณต๊ฒฉ์„ ๋งž์ง€ ๋ง์•„์•ผ ํ•˜๊ณ 

๋ฐ”๋‹ฅ์— ๋ˆ•๊ฒŒ๋˜๋ฉด ์‚ฌ๋ผ์ง€๊ฒŒ ํ•ด์•ผ ํ•˜๋Š”๋ฐ

๊ทธ ์ผ์€ ProcessTheDeadThingSystem์ด ํ•œ๋‹ค.




์–˜๊ฐ€ ํ•˜๋Š” ์ผ์€ ์ฃฝ์—ˆ๋‹ค๋Š” ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์ฃฝ์—ˆ๋‹ค๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์œผ๋ฉด ์ฝœ๋ผ์ด๋”๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๋”์ด์ƒ ๊ณต๊ฒฉ์— ๋งž์ง€ ์•Š๊ฒŒ ํ•˜๊ณ 

CleanupBody ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์œผ๋ฉด 2์ดˆ๋’ค์— ๊ฐ์ฒด๋ฅผ ์†Œ๋ฉธ์‹œํ‚ค๋Š” ์ผ์„ ํ•œ๋‹ค.


๋”์ด์ƒ ๋งž์ง€์•Š๊ฒŒ๋œ ์บ๋ฆญํ„ฐ๋Š” ๋ฐ”๋‹ฅ์— ๋“œ๋Ÿฌ๋ˆ•๋Š” Ground์ƒํƒœ์—์„œ CompDead๊ฐ€ ๋ถ™์–ด์žˆ์œผ๋ฉด Dead์ƒํƒœ๋กœ ๋„˜์–ด๊ฐ„๋‹ค.

Dead์ƒํƒœ์—์„œ CleanupBody์ด๋ฒคํŠธ๊ฐ€ ํ˜ธ์ถœ๋˜๊ณ  ์ด๋•Œ๋ถ€ํ„ฐ ์‹œ์ฒด๋Š” 2์ดˆ๋’ค์— ์†Œ๋ฉธํ•˜๊ฒŒ ๋œ๋‹ค.




์•„๋ž˜๋Š” ์ด ์‹œ์Šคํ…œ๋“ค์ด ์ฒ˜๋ฆฌ๋˜๋Š” ์ˆœ์„œ์ด๋‹ค.




์œ„์— ๊ฒƒ๋“ค์€ ๋‚ด๋ถ€๋™์ž‘ ๋กœ์ง์ด๊ณ , ๋ณด์—ฌ์ง€๋Š” ๋ถ€๋ถ„์€ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ๊นŒ?

์ „์— ๋”ฐ๋กœ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜์ง„ ์•Š์•˜์ง€๋งŒ, ์—ฐ์ถœ๊ด€๋ จ๋œ ์‹œ์Šคํ…œ๋„ ์žˆ๋‹ค. ์ด ์‹œ์Šคํ…œ๋“ค์€ ์ˆœ์ˆ˜ ์—ฐ์ถœ๋งŒ์„ ๋‹ด๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„๋กœ ๊ด€๋ฆฌ๋œ๋‹ค.

์•„๋ž˜๋Š” ์—ฐ์ถœ๋‹ด๋‹น ์‹œ์Šคํ…œ๋“ค์˜ ๋‚˜์—ด์ด๋‹ค.




์—ฌ๊ธฐ์— ์‚ฌ๋งํ–ˆ์„๋•Œ ์‹œ์ฒด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ์€ CleanupBody์ด๋ฒคํŠธ๋ฅผ ๋ฐ›๊ฒŒ๋˜๋ฉด ์†Œ๋ฉธ์—ฐ์ถœ์„ ํ•  ๋ฟ์ด๋‹ค.




์ฒด๋ ฅ๋ฐ” ์‹œ์Šคํ…œ์€ CompHP์ปดํผ๋„ŒํŠธ์™€ ํ”„๋ฆฌํŒน์— HPBarAttachment์ปดํผ๋„ŒํŠธ๊ฐ€ ๋ถ™์–ด์žˆ๋‹ค๋ฉด ๊ทธ ๊ฐ์ฒด์— ์ฒด๋ ฅ๋ฐ”๋ฅผ ๋ถ™์ธ๋‹ค.





๋‹ค์Œ ์ผ์ง€์—์„œ๋Š” ๋ชฌ์Šคํ„ฐ ํ•˜๋‚˜๋ฅผ ๋งŒ๋“ค๊ณ , ๊ฑฐ๊ธฐ์— ๊ฐ„๋‹จํ•œ AI๋ฅผ ๋ถ™์—ฌ๋ณผ ์˜ˆ์ •์ด๋‹ค. ๋—



















์ผ์ง€์“ฐ๊ณ  ์ž ๊น ๋‹ค์‹œํ•ด๋ดค๋Š”๋ฐ, ์„ ์ฑ„๋กœ ์•ฝํƒ€๋ฅผ ์น˜๋ฉด ์„ ์ฑ„๋กœ ์•„๋ฌด๊ฒƒ๋„ ๋ชปํ•ด๋ฒ„๋ฆฌ๋”๋ผ



(๊ท€์‹ ์ด ๋˜๋ฒ„๋ฆผ)


๊ทธ๋ž˜์„œ ์„ ์ฑ„๋กœ ์•ฝํƒ€๋ฅผ ๋งž์•˜์œผ๋ฉด ์ƒํƒœ๊ฐ€ StandHit์ด ๋˜๋Š”๋ฐ, ์ด๋•Œ ์‚ฌ๋งํ•œ ์ƒํƒœ๋ผ๋ฉด, ์ฃฝ์ธ๋…€์„์˜ ๋ฐ˜๋Œ€๋ฐฉํ–ฅ์œผ๋กœ Airborne์‹œ์ผœ๋ฒ„๋ฆผ.




์ด๊ฑฐ ๋˜์ „์•ค๋“œ๋ž˜๊ณค๋„ ์ด๋ ‡๊ฒŒ ์ฒ˜๋ฆฌ๋ฌ๋˜๊ฑฐ ๊ฐ™์Œ. ๋งŒ๋“ค๊ณ ๋ณด๋‹ˆ๊นŒ ๋น„์Šทํ—ˆ๋„ค