์ธํ๋ํ๊ต ์ปดํจํฐ๊ณตํ๊ณผ 2021-1 ๊ฒ์ํ๋ก๊ทธ๋๋ฐ ํ๋ก์ ํธ
INHA Univ. 2021-1 Game Programming Class Project
2์ธ ํ์ผ๋ก ๊ฐ๋ฐ๋์์ผ๋ฉฐ, ํ์ฅ์ ๋งก์ ์ ์ฒด์ ์ธ ํ๋ก์ ํธ ๊ด๋ฆฌ๋ฅผ ๊ฒธํ ๋ณธ์ธ์ ๊ฐ๋ฐ ์์ญ์
- ์ ๋ ฅ ์ฒ๋ฆฌ ๋ฐ ์ ๋๋ฉ์ด์ [PlayerController.cs / CameraController.cs / InteractionController.cs]
- ๋ฌผ๋ฆฌ ์ฒ๋ฆฌ
- ๋ชฌ์คํฐ ์์คํ ๊ตฌํ [MonsterController.cs]
- UI/UX ๋ฐ ๊ธฐ๋ฅ ๊ตฌํ(๋ฏธ๋๋งต ์ ์ธ) [UIManager.cs / EnemyHPBar.cs]
- ๋๋ถ๋ถ์ ์บ๋ฆญํฐ ์คํฌ ๊ตฌํ [Attacks.cs / Cooltime.cs]
- ๋๋ ์์ดํ ๊ตฌํ [PlayerController.cs]
๋ฑ์ด ์๋ค.
-
๋ก๊ทธ๋ผ์ดํฌ ์ฅ๋ฅด์ 3D ํต์ค์ฌ๋์ ๊ฒ์์ผ๋ก, ๊ฒ์์ ํ๋ ์ดํ ๋๋ง๋ค ์บ๋ฆญํฐ๊ฐ ํ๋ ์ดํ๋ ๋งต, ๋์ค๋ ๋ชฌ์คํฐ, ์คํฌ ๋ฑ์ ๋ค์ํ ์์๋ค์ด ๋๋คํ๊ฒ ๋ฑ์ฅํ๋ฉฐ ๋งคํ ์๋ก์ด ๊ฒ์์ ํ๋ ์ ์ ํ ๋๋์ ๊ฐ์ ธ๋ค์ค๋ค. ์ถํํ๋ ๋ชฌ์คํฐ๋ฅผ ์ก์ผ๋ฉด ํด๋น ๋ชฌ์คํฐ์ ์ํผ์ด ์ผ์ ํ๋ฅ ๋ก ๋๋๋๊ณ , ํ๋ ์ด์ด๊ฐ ์ํผ์ ํก์ํ์ฌ ์์ ์ ๋ฅ๋ ฅ์ผ๋ก ๋ง๋ค์ด ์ ํฌ์ ํ์ฉํ ์ ์๋ค.
-
์คํ ๋ฆฌ
ํน๋ณํ ๋ฅ๋ ฅ์ผ๋ก ์์ธ์ดํฐ๋ผ ๋ถ๋ฆฌ๋ ์ฃผ์ธ๊ณต์ด ์ธ๊ณ๋ฅผ ์ํํ๋ ๊ดด๋ฌผ๊ณผ ์ ๋ง๋ค์ ์ํผ์ผ๋ก ๊ทธ๋ค์ ์๋ํ๋ค. ๊ทธ๋ ์ธ๊ณ์ ์์ ์ ๋์ฐพ๊ธฐ ์ํด ์ ์ ์ํ์ ์ฐพ์ ์ฌํ์ ๋ ๋๋ค. ์ผ๋ถ ์ ๋ง๋ค์ ์์ ์ ๋ชจ์ต์ ๋ค๋ฅธ ๊ฒ๋ค๊ณผ ์ ํ ๋ค๋ฅธ ํํ์ ์ด์ง์ ์ธ ๋ชจ์ต์ผ๋ก ๋ง๋ค์ด ์ธ๊ฐ๋ค์ ํผ๋์ ๋น ๋จ๋ฆฐ๋ค.
-
-
-
์์ ๋ฐ ์ปจํธ๋กค
์คํ์ผ๋ฆฌ์ํ ์ ํฌ ๋ฐฉ์์ ์ํด ์ฟผํฐ ๋ทฐ ์์ ์ ์ฐจ์ฉํ๋ค. ๋ง์ฐ์ค ์ปค์๋ก ๊ณต๊ฒฉ ๋ฐฉํฅ์ ์ง์ ํ๋ฉฐ, ํค๋ณด๋๋ก ์ด๋ / ๊ณต๊ฒฉ / ๋์ / ์คํฌ ์ฌ์ฉ / ์ํธ์์ฉ ๋ฑ์ ์กฐ์์ ํ ์ ์๋ค.
-
๋ง์ฐ์ค ์ปค์ ๊ณต๊ฒฉ ๋ฐฉํฅ ์ง์
๋ง์ฐ์ค ์ปค์๋ก ๊ณต๊ฒฉ ๋ฐฉํฅ์ ์ง์ ํ๋ ๋ฐฉ์์ RayCast๋ฅผ ์ด์ฉํ์๊ณ , ์ฌ์ ์ผ๋ก ํ๋ฉด์ ๋ด๋ ค๋ณด๋ ์์ ๋ฐฉ์์ ๊ณ ๋ คํ์ฌ ์คํฌ๋ฆฐ ์ขํ๊ณ๋ก ์ด๋ํ์ฌ ๋ง์ฐ์ค ๋ฐฉํฅ์ ์ฌ๋ฐ๋ฅด๊ฒ ๋ฐ๋ผ๊ฐ ์ ์๋๋ก ์ฒ๋ฆฌํด์ฃผ์๋ค.
Ray๊ฐ ์งํํ๋ ๋ฐฉํฅ์ ์คํฌ ์ดํํธ๋ ๋ชฌ์คํฐ ์ค๋ธ์ ํธ ๋ฑ ๋ค์ํ ์ฅ์ ๋ฌผ์ด ์กด์ฌํ ๋ ๊ธฐ๋์ ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก ํฌ์ฌ์ฒด๊ฐ ๋ฐ์ฌ๋๊ธฐ๋ ํ์๋๋ฐ, ํด๋น ์ค๋ธ์ ํธ๋ค์ Ignore Raycast layer์ ๋์์ผ๋ก์จ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ํ๋ฉด์์ ์ํ๋ ์ง์ ์ ์ฐ์ผ๋ฉด ํด๋น ๋ฐฉํฅ์ ํ๋ ์ด์ด๊ฐ ๋ฐ๋ผ๋ณด๋ LookMouseCursor ํจ์๋ฅผ ๊ตฌํํ์ฌ ๋ค์ํ ๊ณต๊ฒฉ ๋ชจ์ ์ ํ์ฉํ์๋ค.
-
๊ธฐ๋ณธ๊ณต๊ฒฉ
LookMouseCursor ํจ์๋ก ์ํ๋ ๋ฐฉํฅ์ ํฅํด ํ๋ ์ด์ด๊ฐ ํ์ ํ๋ฉด ํด๋น ๋ฐฉํฅ์ผ๋ก Velocity๋ฅผ ์ฃผ์ด ํฌ์ฌ์ฒด๋ฅผ ๋ฐ์ฌํ์๋ค. ๋ชฌ์คํฐ์๊ฒ ๊ณต๊ฒฉ์ด ๋ฟ์ ์งํ
Bullet์ค๋ธ์ ํธ์ ํ๊ทธ๋ฅผ Notagged๋ก ๋ณ๊ฒฝํ์ฌ ์ค์ฒฉ ์ฝ๋ผ์ด๋์ ๋ํ ๋ฐ์์ ํด๊ฒฐํ์๋ค. -
๋์
๋์๋ฅผ ์ํ ์ ๋๋ฉ์ด์ ์ ์คํ์ํด๊ณผ ๋์์ ํ๋ ์ด์ด์ ์๋๋ฅผ ์ผ์์ ์ผ๋ก ๋น ๋ฅด๊ฒ ์กฐ์ ํ์ฌ ๊ตฌํํ์๋ค. ๋์์ ๋ฌดํ์ ๋์๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก isDodgeReady ํ๋๊ทธ๋ฅผ ์ค์ ํ๊ณ Time.deltaTime์ ์ฐ์ฐํ์ฌ ์ผ์ ํ ์ฟจํ์์ ๋๊ณ ๋์๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ์ค์ ํ์๋ค.
-
์คํฌ ์ฌ์ฉ
๋ณด์ ๊ฐ๋ฅํ ์ธ ๊ฐ์ ์คํฌ์ ์ซ์ํค 1, 2, 3๋ฒ์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ํ์๊ณ , ๊ธฐ๋ณธ๊ณต๊ฒฉ์ด๋ ๋์์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ค๋ฅธ ํ๋๊ณผ ๋์์ ์คํํ ์ ์๋๋ก ํ๋๊ทธ๋ฅผ ์ค์ ํด์ฃผ์๋ค. ๋ณด์ ํ ์คํฌ์ด ์กํฐ๋ธ ์คํฌ์ผ ๊ฒฝ์ฐ ๊ฐ๋ณ ์ฟจํ์์ ์ค์ ํด์ฃผ์๊ณ , ์ด ์ฟจํ์์ ์คํฌ๋ง๋ค ๊ฐ์์ ์ฟจํ์ ๋ณ์๋ฅผ ๋ง๋ค์ด ๋ฐ๋ก ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋๋ก ์ค๊ณํ์๋ค.
์ด๋ฌํ ์ฟจํ์ ๊ด๋ฆฌ๋ ์ฝ๋ฃจํด ํจ์๋ฅผ ์ด์ฉํด ์ฌ๋ฌ ์คํฌ์ ์ฟจํ์์ด ๋ณ๋ ฌ์ ์ผ๋ก ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋๋ก ํด์ฃผ์๊ณ , Filled image type์์ Radial 360 ๋ฐฉ์์ ์ ์ฉํด ์ํ์ผ๋ก ์ฟจํ์ ํํ์ด ๊ฐ๋ฅํ๋๋ก ํจ๊ณผ ๋์์ ์ฟจํ์ ๋์ ์ฌ์ฌ์ฉํด๋ ๋ค์ ๊ฒ์ด์ง๊ฐ ๋์ง ์๋๋ก ์ฒ๋ฆฌํด์ฃผ์๋ค.
๋ํ, ๊ฐ ์คํฌ ์ด์ํ ์์ ์กด์ฌํ๋ ๋ฒํธํ์ ์๊น์ ์กํฐ๋ธ/ํจ์๋ธ ์คํฌ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ํ์ฌ ์ด๋ค ์คํฌ์ด ์ฌ์ฉ ๊ฐ๋ฅํ ์คํฌ์ธ์ง ๊ตฌ๋ถ๋๋๋ก ๋์์ธํด ์ฃผ์๋ค.
-
์ํธ์์ฉ
๋ชฌ์คํฐ๋ฅผ ์ฒ์นํ๊ณ ๋์จ ์ํผ์ ํ๋ํ์ฌ ์์ ์ ์คํฌ๋ก ๋ง๋๋ ์ํธ์์ฉ์ ๊ตฌํํ์๋ค.
์ด๋ ๋๊ฐ์ ์คํฌ์ ๋ ๊ฐ ๊ฐ์ง์ง ์๋๋ก ๊ฐ์ง๊ณ ์๋ ์ํผ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด ํ์ฌ ํ๋ ์ด์ด๊ฐ ์ต๋ ๊ฐ๋ฅํ ๋ฒ์์ ์๋ ์ํผ์ด ํ๋ ์ด์ด๊ฐ ๋ณด์ ์ค์ธ ์ํผ์ธ์ง ํ๋จํ์ฌ ์ด๋ฏธ ์กด์ฌํ๊ณ ์๋ค๋ฉด ์ค๋ณต์ผ๋ก ํ๋ํ ์ ์๋๋ก ์ฒ๋ฆฌํด์ฃผ์๋ค.
์ด๋ฏธ ์ธ ๊ฐ์ ์ํผ์ ๊ฐ์ง๊ณ ์์ ๋ ์๋ก์ด ์ํผ์ ์ต๋ํ๋ ค ํ๋ค๋ฉด ์์ ์ด ๊ฐ์ง๊ณ ์๋ ๋ค๋ฅธ ์ํผ๊ณผ ๋ฐ๊ฟ ๊ฒ์ธ์ง, ํน์ ๋ง ๊ฒ์ธ์ง ์ ํํ ์ ์๋๋ก ์ฒ๋ฆฌํด์ฃผ์๊ณ , ์ด๋ํค๋ก ์ด๋ค ์คํฌ๊ณผ ๊ตํํ ๊ฒ์ธ์ง ์ ํ์ด ๊ฐ๋ฅํ๋๋ก ์ค๊ณํด์ฃผ์๋ค. ์ด๋ ํ์ฌ ๋ณด์ ์ค์ธ ํจ์๋ธ ์คํฌ์ ๋ณ๊ฒฝํ๋ ค ํ๋ค๋ฉด ์ ์ฉ๋ ํจ์๋ธ ์คํฌ์ ์ธ์คํด์ค ๋ฑ์ ๋ชจ๋ ํด์ ํ๊ณ ์๋กญ๊ฒ ์ต๋ํ ์คํฌ์ ์ ์ฉํด์ฃผ์๋ค.
-
-
-
HUD
์์ ์คํ ์ด์ GUI Parts ์์ ์ ์ด์ฉ ๋ฐ ์์ ํ์ฌ ์๋์ Head-up display๋ฅผ ์ ์ํด ์ธ๊ฒ์์ ์ ์ฉํ์๊ณ , UI component ์ค Slider๋ฅผ ์ด์ฉํด HP bar๋ฅผ ๊ตฌํํ์๋ค. HUD๋ FHD(1920x1080)์ QHD(2560x1440)์์ ํธํ์ด ๊ฐ๋ฅํ๋๋ก ๊ตฌํํ์๋ค.
UI Manager๋ฅผ ์ด์ฉํด ํ๋ ์ด์ด์ ์ฒด๋ ฅ์ ์ค์๊ฐ์ผ๋ก ๊ด์ฐฐํ๊ณ ์ฆ๊ฐ์ ์ผ๋ก ๊ฐ์ํญ์ ํ์ธํ ์ ์๋๋ก ์ฒ๋ฆฌํด ์ฃผ์๋ค.
-
๋ฏธ๋๋งต
ํ๋ฉด ์ข์ธก ํ๋จ์ ํ์ฌ ํ๋ ์ด์ด๊ฐ ์์นํ ๋งต์ ์ง๊ต๋ก ํฌ์ํ๋ ๋๋ค๋ฅธ ์นด๋ฉ๋ผ๋ฅผ ๋ฐฐ์นํ์ฌ ๋งต ๊ตฌ์กฐ์ ํ๋ ์ด์ด/๋ชฌ์คํฐ/ํฌํ์ ์์น๋ฅผ ํ์ ํ ์ ์๋ ๋ฏธ๋๋งต์ ๊ตฌํํ์๋ค.
-
๋ชฌ์คํฐ HP bar
ํ๋์ ์กด์ฌํ๋ ๋ชจ๋ ๋ชฌ์คํฐ์๊ฒ ํ๋ ์ด์ด์ ๊ฐ์ด ๋จ์ ์ฒด๋ ฅ์ ํ์ธํ ์ ์๋ HP bar๋ฅผ ํ ๋นํด์ฃผ์๋ค. ํ์ฌ ๋ชฌ์คํฐ์ ์๋ ์ขํ๊ณ ์์น๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ถ๋ฌ์ ์คํฌ๋ฆฐ ์ขํ๊ณ๋ก ๋ณํํ ์์น์ HP bar๋ฅผ ์์น์ํค๊ณ ํ์ฌ ์ฒด๋ ฅ์ ๋น๋กํ์ฌ Slider์ ๊ฒ์ด์ง๋ฅผ ๋ณ๊ฒฝํด์ฃผ์๋ค.
-
-
ํ๋ ์ด์ด๊ฐ ๊ฐ์ง๋ ๋ฅ๋ ฅ์น๋ ์ด 6์ข ๋ฅ์ด๋ฉฐ, ๊ฐ๊ฐ์ ๊ธฐ๋ณธ๊ฐ์ ๋ค์๊ณผ ๊ฐ๋ค.
๋ฅ๋ ฅ์น ์์น ์ฒด๋ ฅ100 ๊ณต๊ฒฉ๋ ฅ10 ์ด๋์๋(์ต๋ 10)5 ๊ณต๊ฒฉ์๋(์ด๋น ๊ณต๊ฒฉ ํ์)2 ์ฟจํ์ ๊ฐ์(์ต๋ 60%)0 ๊ธฐ๋ณธ๊ณต๊ฒฉ์ ํน๋ณํ ํ์ผ๋ก ์ ๋ฐฉ์ ํฌ์ฌ์ฒด๋ฅผ ๋ฐ์ฌํ๋ค. ์ ์คํ ๋ชฌ์คํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ ๋ฒ์์ ๋๋ฏธ์ง๋ฅผ ์ค๋ค. ์ํผ์ 3๊ฐ๊น์ง ์์ง๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ์ํผ์ ์ต๋๋ก ์์งํ๊ณ ์์ ๋ ์ด๋ฏธ ๊ฐ์ง๊ณ ์๋ ์ํผ์ ์๋ก์ด ์ํผ์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
-
๋ชฌ์คํฐ ์ฒ์น ์ ์ผ์ ํ๋ฅ ๋ก ๊ทธ ๋ชฌ์คํฐ์ ์ํผ์ด ๋์จ๋ค. ๊ฐ ์ํผ์ ํ๋ํ ์ ํ๋ ์ด์ด์๊ฒ ๋ชฌ์คํฐ์ ํน์ง์ ์ด์ธ๋ฆฌ๋ ์คํฌ์ ๋ถ์ฌํ๋ค. ์คํฌ ํ์ ์๋
ํจ์๋ธ,์กํฐ๋ธ,ํฌ์ฌ์ฒด๊ฐ ์์ผ๋ฉฐ, ๋ชฌ์คํฐ๋ค์ ์ํผ์ด ์ ๊ณตํ๋ ์คํฌ์ ๋ค์๊ณผ ๊ฐ๋ค.๋ฑ๊ธ ๋ง๋ฌผ ์ข ๋ฅ ์คํฌ ํจ๊ณผ ์ผ๋ฐ ๊ทธ๋ฐํธ ์ปค๋ค๋ ๋ฐ์๋ฅผ ๋์ ธ ๋ฒ์์ ๋์ ๋๋ฏธ์ง ์ผ๋ฐ ๊ณ ์ด๋์น ์บ๋ฆญํฐ ์ฃผ๋ณ ๋ฒ์๋ก ๋ค์ด์ค๋ ๋ชฌ์คํฐ์ ๋๋ฏธ์ง ์ผ๋ฐ ๋ฏธ๋ฏน ๋ณด์ ์ค์ธ ์คํฌ ์ฟจํ์ 50% ๊ฐ์ ์ผ๋ฐ ๊ฒ์ ์ ์ด ์๊ตฌ์ ์ผ๋ก ๊ณต๊ฒฉ๋ ฅ + ๊ณต๊ฒฉ์๋ ์ฆ๊ฐ ์ผ๋ฐ ์ด๋ก ์ ์ด ์ฃผ๋ณ์ ๋ ์ฅํ์ ์์ฑํด ์ง์ ๋๋ฏธ์ง + ๋ํ ์ผ๋ฐ ๋๋ ์ดํฌ ์ธ ๊ฐ๋๋ก ๋๊ฐ๋ ํ์ด์ด ๋ณผ ๋ฐ์ฌ ํฌ๊ทํ์ด์ด ๋๋๊ณค ์ง์ ํ ์์น๋ก ๋ฉํ ์ค ๋ฐ์ฌ ํฌ๊ท์คํฌ ์ ๋ฐฉ์ ๊ฐํ๊ฒ ๋ด๋ฆฌ์ณ ์ง์ง ๋ฐ์ + ๋์ ๋ฒ์ ๋ํ ์ ํ์ ๊ธฐ์ฌ๋ ๊ฐ ๋ชฌ์คํฐ์ ์ํผ ์ธ๊ฒ์ ๋์์ธ์ ๋ค์๊ณผ ๊ฐ๋ค. ์ผ๋ฐ ๋ชฌ์คํฐ์ ์ํผ์ 30%, ๋ฏธ๋ฏน์ 20% ํ๋ฅ ๋ก ๋๋๋๋ฉฐ, ๋ค์๋ ๋ชฌ์คํฐ์ ์ํผ์ 30% ํ๋ฅ ๋ก ๋๋๋๋ค.
์ดํ ์๋๋ ๊ฐ ๋ชฌ์คํฐ์ ์ํผ์ด ๋ฐํํ๋ ์คํฌ์ ์ ๋ณด์ด๋ค.
-
๊ทธ๋ฐํธ
์คํฏ ๋ด์ฉ ์คํฏ ๋ด์ฉ ๋ชฌ์คํฐ๊ทธ๋ฐํธ ์คํฌ ํ์ํฌ์ฌ์ฒด ๋๋ฏธ์งํฌ์ฌ์ฒด 20, ํญ๋ฐ 15 ์ฟจํ์8์ด ์ ๋๋ ์ด0.5์ด ํ๋๋ ์ด1์ด -
๊ณ ์ด๋์น
์คํฏ ๋ด์ฉ ์คํฏ ๋ด์ฉ ๋ชฌ์คํฐ๊ณ ์ด๋์น ์คํฌ ํ์ํจ์๋ธ ๋๋ฏธ์ง๋ฒ์ ๋ด ์ด๋น 1 ์ฟจํ์- ์ ๋๋ ์ด- ํ๋๋ ์ด- -
๋ฏธ๋ฏน
[์ดํํธ X]
์คํฏ ๋ด์ฉ ์คํฏ ๋ด์ฉ ๋ชฌ์คํฐ๋ฏธ๋ฏน ์คํฌ ํ์ํจ์๋ธ ํจ๊ณผ๋ณด์ ์คํฌ ์ฟจํ์ 50% ๊ฐ์ ์ฟจํ์- ์ ๋๋ ์ด- ํ๋๋ ์ด- -
๊ฒ์ ์ ์ด
[์ดํํธ X]
์คํฏ ๋ด์ฉ ์คํฏ ๋ด์ฉ ๋ชฌ์คํฐ๊ฒ์ ์ ์ด ์คํฌ ํ์ํจ์๋ธ ํจ๊ณผ๊ธฐ๋ณธ๊ณต๊ฒฉ ๋๋ฏธ์ง 50%, ์ต๋์ฒด๋ ฅ ๋ฐ ํ์ฌ์ฒด๋ ฅ 50% ์ฆ๊ฐ ์ฟจํ์- ์ ๋๋ ์ด- ํ๋๋ ์ด- -
์ด๋ก ์ ์ด
์คํฏ ๋ด์ฉ ์คํฏ ๋ด์ฉ ๋ชฌ์คํฐ์ด๋ก ์ ์ด ์คํฌ ํ์์กํฐ๋ธ ๋๋ฏธ์ง๋ฒ์ ๋ด ์ด๋น 2 (6์ด ์ง์) ์ฟจํ์- ์ ๋๋ ์ด- ํ๋๋ ์ด- -
๋๋ ์ดํฌ
์คํฏ ๋ด์ฉ ์คํฏ ๋ด์ฉ ๋ชฌ์คํฐ๋๋ ์ดํฌ ์คํฌ ํ์ํฌ์ฌ์ฒด ๋๋ฏธ์งํฌ์ฌ์ฒด 5 / ํญ๋ฐ 10 ์ฟจํ์6์ด ์ ๋๋ ์ด- ํ๋๋ ์ด0.1์ด -
ํ์ด์ด ๋๋๊ณค
์คํฏ ๋ด์ฉ ์คํฏ ๋ด์ฉ ๋ชฌ์คํฐํ์ด์ด ๋๋๊ณค ์คํฌ ํ์ํฌ์ฌ์ฒด ๋๋ฏธ์งํฌ์ฌ์ฒด 40 / ํญ๋ฐ 20 ์ฟจํ์12์ด ์ ๋๋ ์ด- ํ๋๋ ์ด0.1์ด -
๊ณจ๋
์คํฏ ๋ด์ฉ ์คํฏ ๋ด์ฉ ๋ชฌ์คํฐ๊ณจ๋ ์คํฌ ํ์ํจ์๋ธ ํจ๊ณผ๊ธฐ๋ณธ๊ณต๊ฒฉ ํฌ๊ธฐ, ๋๋ฏธ์ง 10 ์ฆ๊ฐ ์ฟจํ์- ์ ๋๋ ์ด- ํ๋๋ ์ด-
๊ฐ ์คํฌ ํ์ ์ ๊ตฌํ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค.
-
ํจ์๋ธ
Passives class๋ฅผ ์ถ๊ฐํ์ฌ ๋ชจ๋ ํจ์๋ธ ์คํฌ๋ค์ ํตํฉ์ ์ผ๋ก ๊ด๋ฆฌํด์ฃผ๋ฉฐ, ๋ณด์ ์ค์ธ ์ํผ์ ๋ฐ๋ผ TurnOnPassive/TurnOffPassive ํจ์๋ฅผ ์ด์ฉํด ํจ์๋ธ ์คํฌ์ ํ์ฑํ/๋นํ์ฑํํด์ฃผ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ์๋ค. ๊ณต๊ฒฉํ ํจ์๋ธ ์คํฌ์ ๊ฒฝ์ฐ Collider๋ฅผ ๊ฐ์ ธ ์ง์ ํผํด๋ฅผ ์ค ์ ์๋ ์ค๋ธ์ ํธ๋ฅผ ํ๋ฆฌํน์ผ๋ก ๋ง๋ค์ด ์คํฌ์ ์ป์ ๋ Instantiate ํ์ฌ ์์ ํจ๊ณผ๋ฅผ ๋ฐํํ๋๋ก ํ๊ณ ๋ค๋ฅธ ์คํฌ๋ก ๊ต์ฒดํ ๋ ํด๋น ์ธ์คํด์ค๋ฅผ ํ๊ดดํด์ฃผ์๋ค.
-
์กํฐ๋ธ
Attacks class๋ก ์กํฐ๋ธ ์คํฌ์ ๊ด๋ฆฌํ๋ค. ํฌ์ฌ์ฒด๊ฐ ์๋ ์กํฐ๋ธ ์คํฌ์ ์นญํ๋ฉฐ, ์ฌ์ฉํ์์ ๋ ํ๋ ์ด์ด์ ์์น์ ๋ฐ๋ผ ์คํฌ ์ดํํธ๊ฐ Instantiate ๋๊ณ , ์คํฌ์ ๋ฐ๋ผ ์๋ง์ ํจ๊ณผ๋ฅผ ์ฃผ๋๋ก ์ค๊ณํ์๋ค.
-
ํฌ์ฌ์ฒด
์กํฐ๋ธ์ ๋ง์ฐฌ๊ฐ์ง๋ก Attacks class๋ก ๊ด๋ฆฌํ๋ฉฐ, ํฌ์ฌ์ฒด๊ฐ ์กด์ฌํ๋ ๋ชจ๋ ์กํฐ๋ธ ์คํฌ์ ํฌ์ฌ์ฒด๋ก ๋ถ๋ฅํ์๋ค. ์กํฐ๋ธ ํ์ ๊ณผ์ ์ฐจ์ด๋ ์ถฉ๋์ด 2ํ ์ผ์ด๋๋ค๋ ๊ฒ์ธ๋ฐ, ํ๋ ์ด์ด๋ก๋ถํฐ ์์ฑ๋๋ ํฌ์ฌ์ฒด๊ฐ 1ํ ์ถฉ๋ํ๊ณ ํฌ์ฌ์ฒด๊ฐ ์ถฉ๋ํ๋ฉฐ ๋ฐ์ํ๋ ํญ๋ฐ๊ณผ ๊ฐ์ ์ดํํธ๊ฐ ๋ฐ์ํ์๋ ์ถ๊ฐ์ ์ธ ์ถฉ๋์ด ๋ฐ์ํ๋ค.
-
-
๋ชฌ์คํฐ์ ๋ฑ๊ธ์ ์ผ๋ฐ/๋ค์๋/๋ณด์ค ๋ชฌ์คํฐ๋ก ๋๋๋ค. ์ผ๋ฐ ๋ชฌ์คํฐ๋ ๊ธฐ๋ณธ๊ณต๊ฒฉ๋ง์ผ๋ก ์ ํฌํ๊ณ ๋ค์๋ ๋ชฌ์คํฐ๋ ํ ๊ฐ, ๋ณด์ค ๋ชฌ์คํฐ๋ ์ธ ๊ฐ์ ์คํฌ์ ๊ฐ์ง๋ค. ์คํฌ์ ํ์ ์ 3๊ฐ์ง๋ก, ๊ทธ ์ข ๋ฅ์ ๊ธฐ๋ณธ์ ์ธ ๊ตฌํ ๋ก์ง์ ๋ค์๊ณผ ๊ฐ๋ค.
-
ํฌ์ฌ์ฒด๋ฅผ ๋ฐ์ฌํ๋ ์คํฌ
๋ชฌ์คํฐ์ ์์น์ Instantiate๋ฅผ ํ ํ ๋ชฌ์คํฐ๋ก๋ถํฐ ํ๋ ์ด์ด๋ก์ ๋ฐฉํฅ์ ๊ณ์ฐํด ๊ทธ ๋ฐฉํฅ์ผ๋ก ๊ตฌํ์ ํฌ์ฌ์ฒด์๊ฒ ๋ฌผ๋ฆฌ์ ์ธ ํ์ ๊ฐํด ๋ฐ์ฌํ๊ณ ํด๋น ๊ตฌ์ฒด์ ํ๋ ์ด์ด๊ฐ ๋ฟ์ผ๋ฉด ํผ ํด๋ฅผ ์ค๋ค.
-
๋๋คํ๊ฒ ๋ชฌ์คํฐ ์ฃผ์์ ๊ตฌ์ฒด๋ค์ ์ํํด ํผํด๋ฅผ ์ฃผ๋ ์คํฌ
๋ชฌ์คํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ํน์ ๋ฒ์ ๋ด์ ์ขํ๋ฅผ ๋๋คํ๊ฒ ์ง์ ํด ํด๋น ์ขํ์ ๊ตฌ์ฒด๋ฅผ Instantiate ํด ๊ตฌ์ฒด์ ํ๋ ์ด์ด๊ฐ ๋ฟ์ผ๋ฉด ํผํด๋ฅผ ์ค๋ค.
-
๋ชฌ์คํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฃผ๋ณ์ ์ํ์ ๋ฒ์๋ก ํผํด๋ฅผ ์ฃผ๋ ์คํฌ
๋ชฌ์คํฐ์ ์์น์ ์ํ์ ์ฅํ ์คํฌ์ Instantiate ํด ์ฅํ์ ํฌ๊ธฐ๋งํผ์ ๋ฒ์์ ํผํด๋ฅผ ์ค๋ค.
์ด๋ฌํ ์คํฌ๋ค์ด ๋ฐ๋๋๋ ์กฐ๊ฑด์ ์๋์ ๊ฐ์ด ์ค๊ณ๋์๋ค.
- ํด๋น ๋ชฌ์คํฐ์ MonsterSkillController script์ Update ํจ์๋ฅผ ์ด์ฉํด Frame๋ง๋ค ์๊ฐ์ ํ์ธํด 5์ด๋ง๋ค Coroutine ํจ์๋ก ์คํฌ์ ๋ฐ๋ํ๋ ์ฝ๋๋ฅผ ์คํํ๋ค.
- ์คํฌ ๊ฐ๋ ๋ฒ์์ ํ๋ ์ด์ด๊ฐ ์๋ค๋ฉด ์บ์คํ ์ํ์ ๋์ ํ๋ค.
- ์บ์คํ ์ด ์๋ฃ๋๋ ๋์ MonsterSkill script์์ ํด๋น ๋ชฌ์คํฐ๊ฐ ๊ฐ์ง ์คํฌ ์ค์์ ํ๋๋ฅผ ๋๋คํ๊ฒ ์ ํํ์ฌ ํฌ์ฌ์ฒด๋ฅผ ์ ์ธํ ์์น๊ฐ ์ ํด์ ธ ์๋ ์คํฌ์ ์์ ๊ณต๊ฒฉ ๋ฒ์๋ฅผ ์ค์ ํ๊ณ ํ์ํด์ค๋ค.
- ์บ์คํ ์ด ์๋ฃ๋๋ฉด ๋ค์ MonsterSkill script์์ ํด๋น ์คํฌ์ ๋ฐ๋ํ๋ค.
์๋๋ ๊ฒ์์ ๋ฑ์ฅํ๋ ๋ชฌ์คํฐ๋ค์ ์ ๋ณด์ด๋ค.
-
๊ทธ๋ฐํธ
์ฒด๋ ฅ ๊ณต๊ฒฉ๋ ฅ ๊ณต๊ฒฉ์๋ ์ด๋์๋ 20 10 0.8 4 -
๊ณ ์ด๋์น
์ฒด๋ ฅ ๊ณต๊ฒฉ๋ ฅ ๊ณต๊ฒฉ์๋ ์ด๋์๋ 20 10 0.8 4 -
๋ฏธ๋ฏน
์ฒด๋ ฅ ๊ณต๊ฒฉ๋ ฅ ๊ณต๊ฒฉ์๋ ์ด๋์๋ 20 10 0.7 4 -
๊ฒ์ ์ ์ด
์ฒด๋ ฅ ๊ณต๊ฒฉ๋ ฅ ๊ณต๊ฒฉ์๋ ์ด๋์๋ 20 10 1.2 4 -
์ด๋ก ์ ์ด
์ฒด๋ ฅ ๊ณต๊ฒฉ๋ ฅ ๊ณต๊ฒฉ์๋ ์ด๋์๋ 20 10 1.2 4 -
๋๋ ์ดํฌ
์ฒด๋ ฅ ๊ณต๊ฒฉ๋ ฅ ๊ณต๊ฒฉ์๋ ์ด๋์๋ 20 10 0.7 4 -
ํ์ด์ด ๋๋๊ณค
์ฒด๋ ฅ ๊ณต๊ฒฉ๋ ฅ ๊ณต๊ฒฉ์๋ ์ด๋์๋ 100 20 1.5 6 -
๊ณจ๋
์ฒด๋ ฅ ๊ณต๊ฒฉ๋ ฅ ๊ณต๊ฒฉ์๋ ์ด๋์๋ 100 20 2 4 -
์คํฌ
[ํจ์๋ธ] ๊ณจ๋ ์ด ํ๋ ์ด์ด์ ์ ์ด๋ง ํ๋๋ผ๋ ๋๋ฏธ์ง๋ฅผ ์ค๋ค.
-
-
๋ฆฌ์น
์ฒด๋ ฅ ๊ณต๊ฒฉ๋ ฅ ๊ณต๊ฒฉ์๋ ์ด๋์๋ 400 30 1.5 3
-
-
๋งคํ๋ง๋ค ๋๋คํ๊ฒ 7๊ฐ๊ฐ๋์ ๋งต์ด ์ผ์ง์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์์ฑ๋๋ค. ๋งต์ ํ ๋ง์ ๋ฐ๋ผ ๋ฑ์ฅํ๋ ๋ชฌ์คํฐ ์ข ๋ฅ, ์, ๊ฐ ๋งต์ ์ถํ ๋น๋ ๋ฐ ๋งต์ ํํ๋ ๋๋ค์ผ๋ก ์ค์ ๋๋ค. ๋งต ํ ๋ง ์ข ๋ฅ๋ ๋ค์๊ณผ ๊ฐ๋ค. ๋งต์ด ๋๋ค์ผ๋ก ์์ฑ๋๋ ๋ก์ง์ ์กฐ๊ธ ๋ ์์ธํ๊ฒ ํํํ๋ฉด ์๋์ ๊ฐ๋ค.
- MapSpawner ์ค๋ธ์ ํธ์์ MapSpawner๋ฅผ ์ํํ๋ฉด์ ํ๋ฆฌํน์ผ๋ก ๋ง๋ค์ด ๋์ ์ผ๋ฐ ๋งต์ ๋๋คํ ์์๋ก ๋๋คํ๊ฒ ์์ฑํ๊ณ ๋ง์ง๋ง์ผ๋ก ๋ณด์ค ๋งต์ ์์ฑํ๋ค.
- ๋งต์ด ์์ฑ๋๋ฉด์ MapGenerator๋ฅผ ์ํํ๋ค. MapGenerator๋ ๋งต์์ ์ด๋ ๊ฐ๋ฅํ ํ์ผ๊ณผ ๋ถ๊ฐ๋ฅํ ํ์ผ์ 0๊ณผ 1๋ก ๊ตฌ๋ถํด์ฃผ๋ ์์ ์ ํด์ค๋ค
- ๊ทธ๋ ๊ฒ ํ๋ฉด์์์ ๋งต์ด ๊ตฌํ๋๋ฉด ๊ฐ ๋งต์์ Spawner๋ฅผ ์๋์์ผ ์ด๋ ๊ฐ๋ฅํ ํ์ผ ์ค์ ๋๋คํ๊ฒ ๋ชฌ์คํฐ๋ฅผ ์คํฐํด์ค๋ค. ์ผ๋ฐ ๋ชฌ์คํฐ๋ 5๋ง๋ฆฌ๋ก ๊ณ ์ ๋์ด ์ํ๋๋ฉฐ, ๊ทธ ์ข ๋ฅ๋ ๋๋คํ๋ค. ๋ํ ๋งต ์ปจ์ ์ ๋ง๋ ๋ค์๋ ๋ชฌ์คํฐ์ ์คํฐ ํ๋ฅ ์ 30%๋ก ์ค์ ํ์๋ค.
- ๊ทธ ํ MeshGenerator๋ฅผ ์ํํด์ ์ด๋์ด ๋ถ๊ฐ๋ฅํ ๊ตฌ์ญ์ ๋ฒฝ์ ์์ฑํด 3D ๊ณต๊ฐ์ ๋งต์ ๋ง๋ค์ด์ค๋ค.
- ๊ทธ๋ ๊ฒ ๋ฐ๋ฅ๊ณผ ๋ฒฝ์ ๊ตฌ๋ถํ์ฌ ์์ฑํ๋ฉด ํด๋น ๋งต์ Texture๋ฅผ ์ ํ๊ณ Collider๋ฅผ ๋ง๋ ๋ค.
- ๋ค์ ๋งต์ผ๋ก ๊ฐ๋ ํฌํ์ top, left, right ๋ฐฉํฅ ์ค ๋๋คํ๊ฒ ์์ฑํด์ฃผ๊ณ ๋ค์ ๋งต์์ ์บ๋ฆญํฐ๊ฐ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ์คํฐ๋๋๋ก ๋ฐฉํฅ์ ์ ์ฅํด ๋ ๋งต์ด ์ฐ์์ผ๋ก ์ด์ด์ง ๋ฏํ ํจ๊ณผ๋ฅผ ์ค๋ค.
- MeshGenrator์์์ ์์ ์ด ๋๋๋ฉด MapGenerator์์ ์ผ๋ฐ ๋งต๋ค์ ํฌํ์ ์ ์ ๋นํ์ฑํํ๋ค.
- Frame๋ง๋ค ํ์ฌ ๋งต ์์์ ๋ชฌ์คํฐ๊ฐ ์กด์ฌํ๋์ง ์กฐ์ฌํด ๋ชฌ์คํฐ๊ฐ ๋ ์ด์ ์๋ค๋ฉด ํฌํ์ ํ์ฑํํด์ค๋ค.
๋ชฌ์คํฐ๋ ์ ๋ํฐ ์์ฒด์์ ์ ๊ณตํ๋ Navigation์ผ๋ก ํ๋ ์ด์ด๋ฅผ ์๋์ผ๋ก ์ถ์ ํ๊ฒ ํ์๋ค. Navigation์ ์ค์ ํ๊ธฐ ์ ๋งต ์์ฑ๊ณผ ์ค์ ์ด ๋๋ ํ ๊ฒฝ๋ก๋ฅผ ํ์ํ๋ค. ํ์ฌ ์์ ์ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ๋์์ด ์ถ์ ๊ฑฐ๋ฆฌ ์์ผ๋ก ๋ค์ด์ค๋ฉด ์ถ์ ํ๊ณ ๊ณต๊ฒฉ ์ฌ์ ๊ฑฐ๋ฆฌ ์์ผ๋ก ๋ค์ด์ค๋ฉด ๊ณต๊ฒฉ ๋๋ ์คํฌ์ด ๋ฐ๋๋๋๋ก ๊ตฌํํ์๋ค.
๋ํ, ๋ชฌ์คํฐ๊ฐ ํผ๊ฒฉ์ ๋นํ ๋ ๊ฒฝ์ง ํจ๊ณผ๋ฅผ ์ฃผ๊ธฐ ์ํด GetHit ์ ๋๋ฉ์ด์ ์ ์คํํ๋ฉด์ ์งง์ ์๊ฐ Nav Mesh Agent์ ์ ์ง์ํค๋ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ์๋ค.
























