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

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

ํŠธ๋žœ์Šคํผ ์ปดํฌ๋„ŒํŠธ(Transform Component) ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์˜ ์œ„์น˜(Position), ํšŒ์ „(Rotation), ํฌ๊ธฐ(Scale) ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ ๋ถ€๋ชจ ์˜ค๋ธŒ์ ํŠธ์™€ ์ž์‹ ์˜ค๋ธŒ์ ํŠธ์˜ ๊ณ„์ธต ๊ด€๊ณ„ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋„ ์‚ฌ์šฉ๋˜๋Š” ๋“ฏ ํ•˜๋‹ค. ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๋Š” ํ•ญ์ƒ ํ•˜๋‚˜์˜ ํŠธ๋žœ์Šคํผ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์กด์žฌํ•œ๋‹ค. (UI์˜ ๊ฒฝ์šฐ, Rect Transform) ํŠธ๋žœ์Šคํผ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์—†๋Š” ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑ์€ ๋ถˆ๊ฐ€๋Šฅ ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„ ์„ค์ • ๋ถ€๋ชจ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์ด๋™, ํšŒ์ „, ํฌ๊ธฐ ๋ณ€ํ™˜์„ ์ง„ํ–‰ํ•  ๋•Œ, ๊ทธ์˜ ์ž์‹ ์˜ค๋ธŒ์ ํŠธ ๋˜ํ•œ ์ •ํ™•ํžˆ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•œ๋‹ค. ์‚ฌ๋žŒ์˜ ๋ชธ์ด ์›€์ง์ด๋ฉด ํŒ” ์—ญ์‹œ ๋”ฐ๋ผ ์›€์ง์ด๋ฉฐ, ํŒ”์€ ์†, ์†์€ ์†๊ฐ€๋ฝ์ฒ˜๋Ÿผ ์ž์‹ ์˜ค๋ธŒ์ ํŠธ ๋˜ํ•œ ์ž์‹ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ž์‹ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๊ฐ€์งˆ ์ˆœ ์žˆ์œผ๋‚˜, ๋ถ€..

๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„์—์„œ ์บ๋ฆญํ„ฐ ์ด๋™ ๋ฐฉ์‹์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์กฐ์ด์Šคํ‹ฑ(Joystick)์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•˜์ง€๋งŒ, ์กฐ์ž‘๊ฐ์ด ๋ถˆํŽธํ•ด์„œ ํ™”๋ฉด ํ„ฐ์น˜๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์ถ”์„ธ๋ผ๊ณ  ํ•œ๋‹ค. PC ๊ฒŒ์ž„์—์„œ๋„ LOL์ด๋‚˜ ์Šคํƒ€ํฌ๋ž˜ํ”„ํŠธ ๊ฐ™์€ ๊ฒฝ์šฐ, ๋งˆ์šฐ์Šค๋ฅผ ํ†ตํ•ด ํ™”๋ฉด์˜ ์›ํ•˜๋Š” ์ง€์ ์œผ๋กœ ์บ๋ฆญํ„ฐ๋ฅผ ์ด๋™ ์‹œํ‚ค๋Š” ๋ฐฉ์‹์„ ์“ด๋‹ค. ์›๋ฆฌ ์นด๋ฉ”๋ผ๊ฐ€ ๋ณด์—ฌ์ฃผ๋Š” ์˜์—ญ์— ํ„ฐ์น˜๋ฅผ ํ•˜๋ฉด, Raycast์ฒ˜๋Ÿผ ๊ฐ€์ƒ์˜ ๊ด‘์„ ์„ ์œ๋‹ค. ๊ด‘์„ ์— ๋‹ฟ์€ ๋ฐ”๋‹ฅ์˜ ์ขŒํ‘œ๊ฐ’์„ ๋ฐ›์•„๋‚ด์„œ, ์บ๋ฆญํ„ฐ๋ฅผ ํ•ด๋‹น ์ขŒํ‘œ๋กœ ์ด๋™ ์‹œํ‚จ๋‹ค. ์ฆ‰, ์Šคํฌ๋ฆฐ ์ขŒํ‘œ๊ณ„์—์„œ ์›”๋“œ ์ขŒํ‘œ๊ณ„๋กœ์˜ ๊ฐ’ ๋ณ€ํ™˜ ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค. ๋ฐ”๋‹ฅ์— ์ฝœ๋ผ์ด๋”(Collider) ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์žˆ์–ด์•ผ ๊ด‘์„ ์— ๋ถ€๋”ชํžˆ๋ฏ€๋กœ ๋ฐ˜๋“œ์‹œ ๋„ฃ์–ด์ค˜์•ผ ํ•œ๋‹ค. ์žฅ์• ๋ฌผ์ด ์กด์žฌํ•œ๋‹ค๋ฉด, ๊ธธ์ฐพ๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ถ”๊ฐ€๋กœ ์ ์šฉํ•ด์ค˜์•ผ ํ•œ๋‹ค. ์•„๋‹ˆ๋ฉด ๋„ค๋น„๊ฒŒ์ด์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•..

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

์ €๋ฒˆ ๊ธ€์—์„œ ๊ธฐ๋ณธ์ ์ธ ์…‹ํŒ…์„ ๋๋ƒˆ์—ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ž…๋ ฅ๊ฐ’์„ ์Šคํฌ๋ฆฝํŠธ(script)์— ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹ ์ค‘ 2๊ฐ€์ง€ ์ •๋„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ง์„ ์ œ์–ดํ•˜๋Š” ๊ฑธ ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. Player ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์— Player Input ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ€์ฐฉํ–ˆ์—ˆ๋‹ค. ํ‚ค๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค๋ฉด, ํ‚ค๋ณด๋“œ๋กœ ๋“ค์–ด์˜จ ์ž…๋ ฅ๊ฐ’์„ ์ฃผ์ธ๊ณต ์บ๋ฆญํ„ฐ์—๊ฒŒ ์ „๋‹ฌํ•ด์ค˜์•ผ ํ•œ๋‹ค. 1. ๋กœ์ง์„ ์ œ์–ดํ•  ์Šคํฌ๋ฆฝํŠธ(script) ๋ถ€์ฐฉํ•˜๊ธฐ Player ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์— ํ‚ค ์ž…๋ ฅ๊ฐ’์„ ์ „๋‹ฌ๋ฐ›๊ณ , ํ•ด๋‹น ๋กœ์ง์„ ์ œ์–ดํ•  ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ถ™์—ฌ์คฌ๋‹ค. Send Messages, Broadcast Messages : ์œ ๋‹ˆํ‹ฐ์˜ Send Message ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹ Invoke Unity Events, Invoke C Sharp Events : ์œ ๋‹ˆํ‹ฐ๋‚˜ C#์˜ ์ด๋ฒค..

/* ์ˆ˜์—… ๋“ค์œผ๋ฉฐ ํ–ˆ๋˜ ๋‚ด์šฉ๋“ค์„ ์‹ค์Šตํ•ด๋ณด๋ฉฐ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ๋ง์”€ํ•ด์ฃผ์„ธ์š”. */ ๊ฒŒ์ž„์€ ํŠน์ • ํ”Œ๋žซํผ ํ•˜๋‚˜๋งŒ์„ ๊ฒจ๋ƒฅํ•˜๊ณ  ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†๋‹ค. ์Šค์ผ€์ผ์ด ์ปค์ง€๊ฒŒ ๋˜๋ฉด PC ๋ง๊ณ ๋„ ๋ชจ๋ฐ”์ผ, ์ฝ˜์†” ๋“ฑ์˜ ํ”Œ๋žซํผ๋„ ์ง€์›์„ ํ•ด์•ผ ํ• ํ…๋ฐ, ๊ทธ ์ค‘์—์„œ๋„, ๊ธฐ์กด Unity Input System์€ ๊ฒŒ์ž„ ํ”Œ๋žซํผ ํ™˜๊ฒฝ ์„œ๋น„์Šค๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ๊ณจ๋จธ๋ฆฌ๋ฅผ ์•“๊ฒŒํ•˜๋Š” ์š”์†Œ๋ผ๊ณ  ํ•œ๋‹ค. PC์—์„œ๋Š” ํ‚ค๋ณด๋“œ์™€ ๋งˆ์šฐ์Šค, ๋ชจ๋ฐ”์ผ์€ ํ™”๋ฉด ํ„ฐ์น˜, ์ฝ˜์†”์—์„œ๋Š” ์กฐ์ด์Šคํ‹ฑ์„ ์ด์šฉํ•˜๋Š” ๋“ฑ ํ”Œ๋žซํผ๋งˆ๋‹ค ์‚ฌ์šฉํ•˜๋Š” ์ž…๋ ฅ ๋ฐฉ์‹์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ฆ‰, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์งœ๊ฒŒ ๋˜๋ฉด ํ”Œ๋žซํผ ์ถ”๊ฐ€ ํ™•์žฅํ•  ๋•Œ ๊ฒŒ์ž„ Input System์„ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์ƒ๊ธด๋‹ค. if(Input.GetKey(KeyCode.UpArrow)) // PC์—์„œ ..