1 minute read


1. ๊ฐ„๋‹จํ•œ 2D ๊ฒŒ์ž„ ์ •ํ•˜๊ธฐ

์„ธ์ƒ์—๋Š” ์ˆ˜๋งŽ์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ 2D ๊ฒŒ์ž„๋“ค์ด ์žˆ๋‹ค.
๋˜ฅํ”ผํ•˜๊ธฐ, Bounce Ball, ๋ฒฝ์ ํ”„ ๊ฒŒ์ž„, ๊ฑด๋ฌผ ๋ถ€์ˆ˜๊ธฐ, ๋ฏธ๋กœ ํƒˆ์ถœํ•˜๊ธฐ ๊ฒŒ์ž„ ๋“ฑ๋“ฑ์ด ์žˆ๋Š”๋ฐ ๊ทธ์ค‘์— Bounce Ball์ด๋ผ๋Š” ๊ฒŒ์ž„์„ ๊ตฌํ˜„ํ•ด ๋ณด๊ฒ ๋‹ค.


2. Bounce Ball์ด๋ผ๋Š” ๊ฒŒ์ž„์— ํ•„์š”ํ•œ ๊ธฐ๋Šฅ

  • UI
    • ๋ฉ”์ธ๋ฉ”๋‰ด์™€ ์Šคํ…Œ์ด์ง€ ์„ ํƒํ•˜๋Š” ๊ธฐ๋Šฅ
    • ๋งต์„ ๊นจ๋ฉด ๋‹ค์Œ ์Šคํ…Œ์ด์ง€๊ฐ€ ์–ธ๋ฝ๋˜๋Š” ๊ธฐ๋Šฅ
    • ์ผ์‹œ์ •์ง€ ๋ฐ ๋ฉ”์ธ๋ฉ”๋‰ด๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ธฐ๋Šฅ
    • DB์—ฐ๋™์„ ํ†ตํ•œ ๋กœ๊ทธ์ธ๊ณผ ๊นฌ ์Šคํ…Œ์ด์ง€์— ๋Œ€ํ•œ ์ €์žฅ
    • ์•„์ด๋”” ๋ณ„ Death Count์™€ ranking ๊ธฐ๋ก


  • ๊ฒŒ์ž„ ์ปจํ…์ธ 
    • ์ž๋™์œผ๋กœ ์ผ์ • ๋†’์ด๋งŒํผ ์ ํ”„ํ•˜๋Š” ๊ธฐ๋Šฅ
    • ํ‚ค๋ณด๋“œ ๋ฐฉํ–ฅํ‚ค์— ์ฆ‰๊ฐ์ ์œผ๋กœ ๋ฐ˜์‘๋˜์ง€ ์•Š๋Š” ๊ด€์„ฑ์ด ์ ์šฉ๋œ ๋ฌผ๋ฆฌ๋ฒ•์น™
    • ๊ณ„์† ์œ ์ง€๋˜๋Š” ๋ฐœํŒ ๋ฐ ์ผ์ •์‹œ๊ฐ„๋งˆ๋‹ค ์‚ฌ๋ผ์ง€๊ฑฐ๋‚˜ ์ด๋™ํ•˜๋Š” ๋ฐœํŒ
    • ๋”๋ธ”์ ํ”„๊ฐ™์€ ๋Šฅ๋ ฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ ์ฝ”์ธ
    • ๋ฐ”๋‹ฅ์œผ๋กœ ๋–จ์–ด์ง€๊ฑฐ๋‚˜ ์žฅ์• ๋ฌผ์— ๋‹ฟ์œผ๋ฉด ์ฒ˜์Œ์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ธฐ๋Šฅ

3. UI

  • ๋ฉ”์ธ๋ฉ”๋‰ด์™€ ์Šคํ…Œ์ด์ง€ ์„ ํƒํ•˜๋Š” ๊ธฐ๋Šฅ
    • MainMenu์™€ ์Šคํ…Œ์ด์ง€ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” Scene ์„ ๋งŒ๋“ค์–ด์„œ ๋ฒ„ํŠผ์— ๋”ฐ๋ผ ๋ฉ”์ธ๋ฉ”๋‰ด์™€ ์Šคํ…Œ์ด์ง€์˜ ์žฅ๋ฉด์„ ๋ณด์—ฌ์ค€๋‹ค.


  • ๋งต์„ ๊นจ๋ฉด ๋‹ค์Œ ์Šคํ…Œ์ด์ง€๊ฐ€ ์–ธ๋ฝ๋˜๋Š” ๊ธฐ๋Šฅ
    • ๊ฐ ์Šคํ…Œ์ด์ง€๋งˆ๋‹ค _unlock์ด๋ผ๋Š” bool๋ณ€์ˆ˜๋ฅผ ๋ฐฐ์น˜ํ•˜์—ฌ ๊ทธ ์ „ ์Šคํ…Œ์ด์ง€๋ฅผ ํด๋ฆฌ์–ด์‹œ ๋‹ค์Œ ์Šคํ…Œ์ด์ง€์˜ _unlock๊ฐ’์ด true๊ฐ€ ๋˜๊ฒŒ ์„ค์ •ํ•œ๋‹ค.
    • ์Šคํ…Œ์ด์ง€๋ฅผ ์„ ํƒ์‹œ _unlock์ด true์ธ ์Šคํ…Œ์ด์ง€๋งŒ ์„ ํƒ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค.
    • singletone ๋ณ€์ˆ˜์— Stage_clear ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์–ด์„œ ์Šคํ…Œ์ด์ง€๋ฅผ ๊นฐ ๋•Œ๋งˆ๋‹ค 1์”ฉ ๋”ํ•ด์ค€๋‹ค.


  • ์ผ์‹œ์ •์ง€ ๋ฐ ๋ฉ”์ธ๋ฉ”๋‰ด๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ธฐ๋Šฅ
    • ๊ฒŒ์ž„์„ ์‹คํ–‰ํ•˜๋ฉด ์˜ค๋ฅธ์ชฝ ์œ„์— singletone ํƒ€์ž…์˜ ํ†ฑ๋‹ˆ๋ฐ”ํ€ด UI๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ผ์‹œ์ •์ง€๊ฐ€ ๋˜๊ณ  ๋ฉ”์ธ๋ฉ”๋‰ด๋กœ ๊ฐ€๊ฑฐ๋‚˜ ์ข…๋ฃŒ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.


  • DB์—ฐ๋™์„ ํ†ตํ•œ ๋กœ๊ทธ์ธ๊ณผ ๊นฌ ์Šคํ…Œ์ด์ง€์— ๋Œ€ํ•œ ์ €์žฅ
    • DB ์—ฐ๋™์„ ํ†ตํ•˜์—ฌ ํšŒ์›๊ฐ€์ž… ํ›„ ID, PassWord๊ฐ€ ๊ฐ™์„์‹œ ๋กœ๊ทธ์ธ
    • ๋กœ๊ทธ์ธ ํ›„ ์ €์žฅ๋œ DB์— ๋”ฐ๋ฅธ ์Šคํ…Œ์ด์ง€ ํด๋ฆฌ์–ด ๊ธฐ๋ก ๋ฐ DeathCound ๋™๊ธฐํ™”


  • ์•„์ด๋”” ๋ณ„ Death Count์™€ ranking ๊ธฐ๋ก
    • rank ๋ฉ”๋‰ด์— ๋“ค์–ด๊ฐ€๋ฉด ๋ชจ๋“  ์‚ฌ์šฉ์ž์˜ DB์—์„œ DeathCount์™€ ์Šคํ…Œ์ด์ง€ ํด๋ฆฌ์–ด ๊ฐœ์ˆ˜๋ฅผ ์กฐํšŒํ•˜์—ฌ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„


4. ๊ฒŒ์ž„ ์ปจํ…์ธ 

  • ์ž๋™์œผ๋กœ ์ผ์ • ๋†’์ด๋งŒํผ ์ ํ”„ํ•˜๋Š” ๊ธฐ๋Šฅ
    • Update๋ฌธ์— Jump๋ผ๋Š” 1.5์นธ ๋ธ”๋Ÿญ์˜ ๋†’์ด๋งŒํผ ์ž๋™์œผ๋กœ ์ ํ”„ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋„ฃ๋Š”๋‹ค.
    • Jump ํ•จ์ˆ˜์— _isJump๋ผ๋Š” bool๋ณ€์ˆ˜๊ฐ€ false์ผ๋•Œ๋งŒ ์‹คํ–‰๋˜๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค.


  • ํ‚ค๋ณด๋“œ ๋ฐฉํ–ฅํ‚ค์— ์ฆ‰๊ฐ์ ์œผ๋กœ ๋ฐ˜์‘๋˜์ง€ ์•Š๋Š” ๊ด€์„ฑ์ด ์ ์šฉ๋œ ๋ฌผ๋ฆฌ๋ฒ•์น™
    • Velocity๋ผ๋Š” -1 ~ 1 ์‚ฌ์ด์˜ float ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ํ‚ค๋ณด๋“œ์— ๋”ฐ๋ผ Velocity ๊ฐ’์ด ๋ณ€ํ•˜๊ฒŒ ํ•œ๋‹ค.
    • ์ดํ›„ Ball์— new Vector(Velocity * Speed, 0)์„ ๋”ํ•ด์„œ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ ์‹œ๊ฐ„๋งŒํผ ๋นจ๋ผ์ง€๊ฑฐ๋‚˜ ๋Š๋ ค์ง€๋Š” ๋ฌผ๋ฆฌ๋ฒ•์น™์„ ๊ตฌํ˜„ํ•œ๋‹ค.
    • Ball์ด ๋•…์— ๋‹ฟ์„๋•Œ๋งˆ๋‹ค Velocity์˜ ๊ฐ’์— 1/2๋ฅผ ๊ณฑํ•ด์„œ ๋งˆ์ฐฐ๋ ฅ์„ ๊ตฌํ˜„ํ•œ๋‹ค.
    • ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋Šฅ๋ ฅ์— ๋”ฐ๋ผ ์ผ์‹œ์ ์œผ๋กœ Speed์˜ ๊ฐ’์„ ์กฐ์ •ํ•œ๋‹ค.


  • ๊ณ„์† ์œ ์ง€๋˜๋Š” ๋ฐœํŒ ๋ฐ ์ผ์ •์‹œ๊ฐ„๋งˆ๋‹ค ์‚ฌ๋ผ์ง€๊ฑฐ๋‚˜ ์ด๋™ํ•˜๋Š” ๋ฐœํŒ
    • ์ผ์ • Time.deltaTime๋งˆ๋‹ค ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋น„ํ™œ์„ฑํ™” ํ•˜๊ฑฐ๋‚˜ ์ด๋™์‹œํ‚จ๋‹ค.


  • ๋”๋ธ” ์ ํ”„๊ฐ™์€ ๋Šฅ๋ ฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ ์ฝ”์ธ
    • ๋งต์—์„œ ์ƒ์„ฑ๋˜๋Š” ์ฝ”์ธ์„ ๋จน์€ ํ›„ space๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋Šฅ๋ ฅ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    • ๋”๋ธ” ์ ํ”„๊ฐ™์€ ๊ฒฝ์šฐ ๊ณต์ค‘์—์„œ _isJump๋ฅผ false๋กœ ์ดˆ๊ธฐํ™”


  • ๋ฐ”๋‹ฅ์œผ๋กœ ๋–จ์–ด์ง€๊ฑฐ๋‚˜ ์žฅ์• ๋ฌผ์— ๋‹ฟ์œผ๋ฉด ์ฒ˜์Œ์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ธฐ๋Šฅ
    • Ball์˜ script์— ์ผ์ • y์ดํ•˜๋กœ ๋–จ์–ด์ง€๊ฑฐ๋‚˜ Tag๊ฐ€ Trap์— ๋‹ฟ์„ ์‹œ Death Count๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ , ์‹œ์ž‘์œ„์น˜๋กœ ์ˆœ๊ฐ„์ด๋™



๊ฐœ์ธ ๊ณต๋ถ€ ๊ธฐ๋ก์šฉ ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
ํ‹€๋ฆฌ๊ฑฐ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์ œ๋ณดํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.๐Ÿ˜