1 ๋ถ„ ์†Œ์š”

๐ŸŒ ๊ณต์ง€ ์‚ฌํ•ญ ์ด ํฌ์ŠคํŠธ๋Š” ์ธํ”„๋Ÿฐ์˜ ์ž…๋ฌธ์ž๋ฅผ ์œ„ํ•œ UE5-Part2. ์–ธ๋ฆฌ์–ผ ์—”์ง„ 2D ๊ฒŒ์ž„ ๊ฐœ๋ฐœ ์ž…๋ฌธ ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ํ•™์Šตํ•œ ๋‚ด์šฉ์˜ ์š”์•ฝ์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๊ฐ•์˜๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

Tips

  • BP์—์„œ Data๋ฅผ ๊บผ๋‚ด ์“ธ ๋•Œ, ์ปฌ๋Ÿผ์ด ๋„ˆ๋ฌด ๋งŽ์•„์„œ ๋ณด๊ธฐ ์ข‹์ง€ ์•Š๋‹ค๋ฉด break๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณด๊ธฐ์ข‹๋‹ค. image-20240410074452530

  • ๊ณต๊ฒฉ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ๋•Œ, ํ”ผํ•ด๋ฅผ ๋ฐ›๋Š” ์ชฝ์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.

Collision

๊ฐœ์š”

๊ณต๊ฒฉ์„ ํ–ˆ์„ ๋•Œ, ์•ž์— ์žˆ๋Š” ๋Œ€์ƒ์„ ๊ณต๊ฒฉํ•˜๋Š” ๋กœ์ง์„ ๊ตฌ์„ฑํ•œ๋‹ค. ๊ตฌํ˜„ํ•˜๋Š” ์ฃผ์š” ๊ธฐ๋Šฅ์€ ์•„๋ž˜์™€ ๊ฐ™์Œ.

  1. Creature ์—์„œ Sprite์— Collision ์„ธํŒ….
  2. BP ๋‚ด์—์„œ ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •ํ–ˆ๋˜ Hp์™€ Damage ๋“ฑ์„ ๋ฐ์ดํ„ฐ์— ์ถ”๊ฐ€ํ•ด์„œ ๊ด€๋ฆฌ.
  3. Process Attack() ๊ตฌํ˜„
    • Collision๊ณผ ๊ฒน์น˜๋Š” ๊ฐ์ฒด๋ฅผ ์ฐพ์•„์„œ, ๊ฐ๊ฐ์˜ ๊ฐ์ฒด์— ๋Œ€ํ•ด์„œ ๋ฐ˜๋ณต๋ฌธ ์‹คํ–‰
    • ๋ฐ˜๋ณต๋ฌธ ๋‚ด์—์„œ๋Š” ์ฐพ์€ ๋Œ€์ƒ์— ๋Œ€ํ•ด์„œ On Damaged ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ํ•จ.
  4. ํ•จ์ˆ˜:OnDamaged() ๊ตฌํ˜„
    • ๋Œ€์ƒ์ด ๋‚˜์ผ ๋•Œ ์‹คํ–‰ํ•˜์ง€ ์•Š์Œ.
    • Hp๊ฐ€ 0 ์ดํ•˜์ผ ๋•Œ์—๋Š” 0์œผ๋กœ Set()

1. Collision ์„ธํŒ…

Components์—์„œ Add button์„ ๋ˆŒ๋Ÿฌ์„œ Box Collider๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. Sprite ๋ฐ‘์— ๋ถ™์—ฌ๋†”์•ผ ํšŒ์ „๋„ ๊ฐ™์ด ๋œ๋‹ค. image-20240410084514083

2. Data ์ถ”๊ฐ€

Data์— ์ปฌ๋Ÿผ์„ ์ถ”๊ฐ€ํ•˜๊ณ , DataTable์—์„œ ์ดˆ๊ธฐ๊ฐ’์„ ์ง€์ •ํ•ด์ค€๋‹ค. (์ด๋•Œ ์„ค์ •ํ•˜๋Š” Hp๋Š” MaxHp์™€ ๊ฐ™์€ ์˜๋ฏธ์ด๋‹ค.)

image-20240410084834372

์„ค์ •ํ•œ Hp๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ Event BeginPlay์—์„œ Data ๋ณ€์ˆ˜์˜ Hp๊ฐ’์„ BP ๋‚ด์˜ Hp๊ฐ’์œผ๋กœ Set ํ•ด์ค€๋‹ค. image-20240410085736520

3. ProcessAttack()

  • ๊ณต๊ฒฉ ๋กœ์ง์€ Update Animation ๋’ค์— ์‹คํ–‰๋˜๋„๋ก ์ด๋ฒคํŠธ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ , ๋‚ด๋ถ€ ๋กœ์ง์„ ๊ตฌํ˜„ํ•œ๋‹ค.
  • Get Overlapping Actors๋ฅผ ์ด์šฉํ•˜๋ฉด Collision์•ˆ์— ๋“ค์–ด์˜จ ํŠน์ • Class ๊ฐ์ฒด๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์šฉํ•  Collision์€ select ๋ฌธ์„ ํ†ตํ•ด์„œ Direction์— ๋งž๊ฒŒ ์ง€์ •ํ•ด์ค€๋‹ค. image-20240410085143532
  • Foreach๋ฅผ ํ†ตํ•ด์„œ OnDamaged๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ํ•œ๋‹ค.

4. OnDamaged(obj target, int Damage, obj Attacker)

  • ํ”ผ๊ฒฉ๋Œ€์ƒ, ํ”ผ๊ฒฉ์ˆ˜์น˜, ๊ณต๊ฒฉ๋Œ€์ƒ์„ ์ธ์ž๋กœ ๋ฐ›๋Š” ํ•จ์ˆ˜. (๊ณต๊ฒฉ๋Œ€์ƒ์€ ๋‹น์—ฐํžˆ self์ด๋‹ค.)

  • ๊ณต๊ฒฉ์ž๊ฐ€ ๋‚ด๊ฐ€ ์•„๋‹ ๋•Œ, Hp - Damage = set Hp๋กœ ์‹คํ–‰๋˜๋„๋ก ํ•œ๋‹ค.

  • Clamp๋ฅผ ์ด์šฉํ•ด์„œ Hp์˜ ์ตœ์†Œ๊ฐ’(0)๊ณผ ์ตœ๋Œ€๊ฐ’(MaxHp)๋กœ ์„ค์ •ํ•œ๋‹ค.

    image-20240410085805332

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ:

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ