๐ŸŽฎGame Development/Unity ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ

ํ•ด๋‹น ๊ธ€ 18๊ฑด

๊ฒŒ์ž„์—๋Š” ์ˆ˜๋งŽ์€ ์ด๋ฒคํŠธ๋“ค์ด ์žˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์  ์บ๋ฆญํ„ฐ์˜ ์‹œ์•ผ์— ์–ธ์ œ ๋“ค์–ด์˜ค๊ณ  ๋‚˜๊ฐ€๋Š”์ง€, ์ฒด๋ ฅ์ด ์–ธ์ œ ๋–จ์–ด์ง€๋Š”์ง€, ๋ฌด๊ธฐ๊ฐ€ ์–ธ์ œ ๋ฐ”๋‹ฅ๋‚˜๋Š”์ง€, ์  ์บ๋ฆญํ„ฐ๊ฐ€ ์–ธ์ œ ์œ„ํ—˜ํ•œ ๋ฐ”๋‹ฅ์— ์˜ฌ๋ผ์„œ๋Š”์ง€ ๋“ฑ, ์šฐ๋ฆฌ๊ฐ€ ๊ฒŒ์ž„ํ•  ๋•Œ๋งˆ๋‹ค ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ฒฝํ—˜ํ–ˆ๋˜ ๊ฒƒ๋“ค์ด๋‹ค. ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์ด๋‚˜ ๋งˆ์šฐ์Šค ํด๋ฆญ, ์˜ค๋ธŒ์ ํŠธ์˜ ์ถฉ๋Œ์ฒด ์˜์—ญ ํ†ต๊ณผ, ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ณต๊ฒฉ๋ฐ›๋Š” ๊ฒƒ ๋“ฑ๊ณผ ๊ฐ™์€ ์ˆœ๊ฐ„์ฒ˜๋Ÿผ ์ด๋ฒคํŠธ๋Š” ์ˆ˜๋™์ ์ธ ์„ฑ๊ฒฉ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์Šค์Šค๋กœ ๋Šฅ๋™์ ์œผ๋กœ ๋ฐœ์ƒํ•˜์ง„ ์•Š๋Š”๋‹ค. ์ด๋ฒคํŠธ๋Š” ์‘๋‹ต์„ ๋งŒ๋“ค๊ณ  ๋ฐœ์ƒ์‹œํ‚ค๋ฉฐ, ๊ทธ ์‘๋‹ต์ด ๋‹ค์‹œ ๊ทธ ์ดํ›„์˜ ์‘๋‹ต์„ ์ผ์œผํ‚ค๋Š” ์ด๋ฒคํŠธ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์ด๋ฒคํŠธ๋Š” ํ•˜๋‚˜์˜ ํ–‰๋™์„ ์ทจํ•จ(์ด๋ฒคํŠธ)์œผ๋กœ์จ ๋‹ค๋ฅธ ํ–‰๋™์„ ์ˆ˜๋ฐ˜(์‘๋‹ต)ํ•˜๋Š” ์‹์œผ๋กœ, ์„œ๋กœ์˜ ํ–‰๋™๋“ค์€ ์ค‘์š”ํ•œ ๊ด€๊ณ„๋ฅผ ๋งบ๊ณ  ์žˆ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กœํผํ‹ฐ(Property)๋ฅผ ํ†ตํ•œ ์ด๋ฒคํŠธ ๊ตฌํ˜„์˜..

์œ ๋‹ˆํ‹ฐ์—์„œ ๋””๋ฒ„๊น…์„ ํ•˜๋‹ค ๋ณด๋ฉด, ์ฝ˜์†”๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ๋ฌธ์ž์—ด๋ณด๋‹ค๋Š” ์‹œ๊ฐ์ ์ธ ์„ ์„ ํ†ตํ•ด ํ™•์ธํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ์ ๊ณผ ๋‹ค๋ฅธ ์บ๋ฆญํ„ฐ๋“ค์—๊ฒŒ ํ”Œ๋ ˆ์ด์–ด๋‚˜ ๋‹ค๋ฅธ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๋ฒ”์œ„ ๋‚ด๋กœ ๋“ค์–ด์˜ฌ ๋•Œ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฐ€์‹œ์„  ๊ธฐ๋Šฅ ๊ฐ™์€ ๊ฒƒ์ด ๋Œ€ํ‘œ์ ์ด๋‹ค. ์ง€๊ตฌ์ฒ˜๋Ÿผ ๊ณต์ „์„ ํ•˜๋Š” ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์žˆ์„ ๋•Œ, ๊ทธ ๊ถค๋„๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์„ ์œผ๋กœ ํ‘œ์‹œ๋ฅผ ํ•ด์ค€๋‹ค๋ฉด ๋”์šฑ ํŽธ๋ฆฌํ•  ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฐ ๊ธฐ๋Šฅ๋“ค์ด ์ง€์›๋œ๋‹ค๋ฉด, ์–ด๋–ป๊ฒŒ ๊ฒŒ์ž„์ด ์ž‘๋™ํ•˜๋Š”์ง€ ๋ˆˆ์œผ๋กœ ์ง์ ‘ ํ™•์ธ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. (๋ฌผ๋ก  ์ด๋Ÿฐ ์„ ๋“ค์€ ์‹ค์ œ ์ธ๊ฒŒ์ž„์—์„œ๋Š” ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค.) ๊ธฐ์ฆˆ๋ชจ(Gizmos) ์œ„์—์„œ ์„ค๋ช…ํ–ˆ๋˜ ๊ธฐ๋Šฅ๋“ค์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด, ์œ ๋‹ˆํ‹ฐ๋Š” ๊ธฐ์ฆˆ๋ชจ(Gizmos)๋ผ๋Š” ์‹œ๊ฐ์  ๋„๊ตฌ ์žฅ์น˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ถฉ๋Œ์ฒด์˜ ์™€์ด์–ดํ”„๋ ˆ์ž„ ๋ฐ”์šด๋”ฉ ๋ฐ•์Šค(Wire Frame Bounding..

ํ•„์š”ํ•œ ์ด์œ  ์œ ๋‹ˆํ‹ฐ์—์„œ ์กฐ๊ฑด๋ณ„ ์ปดํŒŒ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ ์ค‘ ํ•˜๋‚˜๋กœ, ๋””๋ฒ„๊น…์„ ๋๋‚ธ ํ›„์— ๋””๋ฒ„๊ทธ ์ฝ”๋“œ๋ฅผ ์ง€์šฐ๊ณ , ๋‹ค์‹œ ๊ฐœ๋ฐœํ•˜๋‹ค๊ฐ€ ๋˜ ๋˜‘๊ฐ™์€ ์˜ค๋ฅ˜๋ฅผ ์ ‘ํ•˜๊ฒŒ ๋˜๋ฉด ์ง€์› ๋˜ ๋‚ด์šฉ๋“ค์„ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์„ ๊ฒช์ง€ ์•Š์•„๋„ ๋œ๋‹ค๋Š” ๊ฒŒ ์žˆ๋‹ค. ์ด๊ฒƒ์€ ์ „์—ญ ์„ ์–ธ(Global define)์„ ํ†ตํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ „์—ญ ์„ ์–ธ์ด๋ž€, ์ฝ”๋“œ๋ฅผ ์กฐ๊ฑด๋ณ„๋กœ ์ปดํŒŒ์ผํ•˜๊ฑฐ๋‚˜ ํŠน์ • ๋‹จ๋ฝ์„ ์ œ์™ธํ•˜๋Š” ๊ฒƒ์„ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ํŠน๋ณ„ํ•œ ์ „์ฒ˜๋ฆฌ๊ธฐ ํ”Œ๋ž˜๊ทธ(Preprocessor flag)๋ฅผ ๋งํ•œ๋‹ค. ํ”Œ๋ž˜๊ทธ๋ฅผ true๋กœ ์„ค์ •ํ•˜๋ฉด ์œ ๋‹ˆํ‹ฐ๋Š” ์ž๋™์œผ๋กœ ํ•œ ๋ฒ„์ „์˜ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผ, false๋กœ ์„ค์ •ํ•˜๋ฉด ๋˜ ๋‹ค๋ฅธ ๋ฒ„์ „์„ ์ปดํŒŒ์ผํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋‚˜๋Š” ๋””๋ฒ„๊ทธ์šฉ, ๋˜ ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๋ฐฐํฌ์šฉ๊ณผ..

Unity ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค๊ฐ€ MonoBehaviour ํด๋ž˜์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” "SendMessage()"์™€ "BroadcastMessage()" ๊ธฐ๋Šฅ์„ ๋ดค๋‹ค. ์œ„ ํ•จ์ˆ˜๋“ค์„ ์ด์šฉํ•˜์—ฌ, ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์— ๋ถ™์€ ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ์˜ ํ•จ์ˆ˜๋ฅผ ์ด๋ฆ„์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํด๋ž˜์Šค์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„ , ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฐธ์กฐ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜์— ์ ‘๊ทผํ•˜๊ฒŒ ๋œ๋‹ค. ํ•˜์ง€๋งŒ, "SendMessage()"์™€ "BroadcastMessage()"๋Š” ์‹คํ–‰ํ•  ํ•จ์ˆ˜์˜ ์ด๋ฆ„๋งŒ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ์ฐธ์กฐ ๊ณผ์ •์„ ๊ฑฐ์น˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. SendMessage() ๋‹ค์Œ์€ Unity API Documentation์— ์ ํ˜€์žˆ๋Š” ํ•จ์ˆ˜์˜ ์›ํ˜•์ด๋‹ค. public void SendMessage(string methodName, objec..

Platform Effector 2D ์ฝœ๋ผ์ด๋”์— ์ผ๋ฐฉํ–ฅ ์ถฉ๋Œ, ์ธก๋ฉด ๋ถ€๋ถ„์˜ ๋งˆ์ฐฐ๋ ฅ/๋ฐ˜๋ฐœ๋ ฅ ์ œ๊ฑฐ ๋“ฑ์˜ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ ๋ฉ”์ดํ”Œ์Šคํ† ๋ฆฌ์˜ ์ง€ํ˜•์„ ๋ณด๋ฉด, ๋•…์˜ ์œ— ๋ถ€๋ถ„์€ ์ถฉ๋Œ์ด ์ผ์–ด๋‚˜์ง€๋งŒ ์•„๋žซ ๋ถ€๋ถ„์€ ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋Ÿฐ ์ผ๋ฐฉํ–ฅ ์ถฉ๋Œ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ ์™ธ์—๋„, 2D ์บ๋ฆญํ„ฐ๊ฐ€ ๋ฒฝ๋ฉด ์ฝœ๋ผ์ด๋” ์˜ค๋ธŒ์ ํŠธ์˜ ๋งˆ์ฐฐ๋ ฅ ๋•Œ๋ฌธ์— ๋ฒฝ์— ๋ผ์–ด์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋‚ด๋ ค์˜ค์ง€ ์•Š๋Š” ์ƒํ™ฉ๋„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ดํŽ™ํ„ฐ(Effector)์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ์ฝœ๋ผ์ด๋”๋Š” ๋‹ค๋ฅธ ์ฝœ๋ผ์ด๋”์™€์˜ ์ถฉ๋Œ์„ ์œ„ํ•ด, ์ผ๋ฐ˜์ ์œผ๋กœ ํŠธ๋ฆฌ๊ฑฐ ๋ชจ๋“œ๋กœ ์„ค์ •๋˜์ง€ ์•Š๋Š”๋‹ค. ์ดํŽ™ํ„ฐ๋ฅผ ์ ์šฉํ•  ์ฝœ๋ผ์ด๋”์˜ Used By Effector ํ”„๋กœํผํ‹ฐ๋ฅผ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•œ๋‹ค. Platform Effector 2D์˜ ํ”„๋กœํผํ‹ฐ Used Collider Mask : Collider Mask ํ”„๋กœ..