ํผ๊ฒฉํ์
๐ ๊ณต์ง ์ฌํญ ์ด ํฌ์คํธ๋ ์ธํ๋ฐ์ ์ ๋ฌธ์๋ฅผ ์ํ UE5-Part2. ์ธ๋ฆฌ์ผ ์์ง 2D ๊ฒ์ ๊ฐ๋ฐ ์ ๋ฌธ ๊ฐ์๋ฅผ ํตํด ํ์ตํ ๋ด์ฉ์ ์์ฝ์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ํด๋น ๊ฐ์๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
Tips
-
BP์์ Data๋ฅผ ๊บผ๋ด ์ธ ๋, ์ปฌ๋ผ์ด ๋๋ฌด ๋ง์์ ๋ณด๊ธฐ ์ข์ง ์๋ค๋ฉด break๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณด๊ธฐ์ข๋ค.
-
๊ณต๊ฒฉ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋, ํผํด๋ฅผ ๋ฐ๋ ์ชฝ์์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.
Collision
๊ฐ์
๊ณต๊ฒฉ์ ํ์ ๋, ์์ ์๋ ๋์์ ๊ณต๊ฒฉํ๋ ๋ก์ง์ ๊ตฌ์ฑํ๋ค. ๊ตฌํํ๋ ์ฃผ์ ๊ธฐ๋ฅ์ ์๋์ ๊ฐ์.
- Creature ์์ Sprite์ Collision ์ธํ .
- BP ๋ด์์ ์ด๊ธฐ๊ฐ์ ์ค์ ํ๋ Hp์ Damage ๋ฑ์ ๋ฐ์ดํฐ์ ์ถ๊ฐํด์ ๊ด๋ฆฌ.
- Process Attack() ๊ตฌํ
- Collision๊ณผ ๊ฒน์น๋ ๊ฐ์ฒด๋ฅผ ์ฐพ์์, ๊ฐ๊ฐ์ ๊ฐ์ฒด์ ๋ํด์ ๋ฐ๋ณต๋ฌธ ์คํ
- ๋ฐ๋ณต๋ฌธ ๋ด์์๋ ์ฐพ์ ๋์์ ๋ํด์ On Damaged ํจ์๊ฐ ์คํ๋๋๋ก ํจ.
- ํจ์:OnDamaged() ๊ตฌํ
- ๋์์ด ๋์ผ ๋ ์คํํ์ง ์์.
- Hp๊ฐ 0 ์ดํ์ผ ๋์๋ 0์ผ๋ก Set()
1. Collision ์ธํ
Components์์ Add button์ ๋๋ฌ์ Box Collider๋ฅผ ์ถ๊ฐํ๋ค. Sprite ๋ฐ์ ๋ถ์ฌ๋์ผ ํ์ ๋ ๊ฐ์ด ๋๋ค.
2. Data ์ถ๊ฐ
Data์ ์ปฌ๋ผ์ ์ถ๊ฐํ๊ณ , DataTable์์ ์ด๊ธฐ๊ฐ์ ์ง์ ํด์ค๋ค. (์ด๋ ์ค์ ํ๋ Hp๋ MaxHp์ ๊ฐ์ ์๋ฏธ์ด๋ค.)
์ค์ ํ Hp๋ฅผ ์ด๊ธฐํํ๊ธฐ ์ํด์ Event BeginPlay์์ Data ๋ณ์์ Hp๊ฐ์ BP ๋ด์ Hp๊ฐ์ผ๋ก Set ํด์ค๋ค.
3. ProcessAttack()
- ๊ณต๊ฒฉ ๋ก์ง์ Update Animation ๋ค์ ์คํ๋๋๋ก ์ด๋ฒคํธ ๊ทธ๋ํ๋ฅผ ๋ณ๊ฒฝํ๊ณ , ๋ด๋ถ ๋ก์ง์ ๊ตฌํํ๋ค.
- Get Overlapping Actors๋ฅผ ์ด์ฉํ๋ฉด Collision์์ ๋ค์ด์จ ํน์ Class ๊ฐ์ฒด๋ฅผ ์๋ณํ ์ ์๋ค.
์ด์ฉํ Collision์ select ๋ฌธ์ ํตํด์ Direction์ ๋ง๊ฒ ์ง์ ํด์ค๋ค.
- Foreach๋ฅผ ํตํด์ OnDamaged๊ฐ ์คํ๋๋๋ก ํ๋ค.
4. OnDamaged(obj target, int Damage, obj Attacker)
-
ํผ๊ฒฉ๋์, ํผ๊ฒฉ์์น, ๊ณต๊ฒฉ๋์์ ์ธ์๋ก ๋ฐ๋ ํจ์. (๊ณต๊ฒฉ๋์์ ๋น์ฐํ self์ด๋ค.)
-
๊ณต๊ฒฉ์๊ฐ ๋ด๊ฐ ์๋ ๋, Hp - Damage = set Hp๋ก ์คํ๋๋๋ก ํ๋ค.
-
Clamp๋ฅผ ์ด์ฉํด์ Hp์ ์ต์๊ฐ(0)๊ณผ ์ต๋๊ฐ(MaxHp)๋ก ์ค์ ํ๋ค.
๋๊ธ๋จ๊ธฐ๊ธฐ