๐Ÿช‚ ์ค‘๋ ฅ๊ณผ ํฌ๋ฌผ์„  ์šด๋™ – ์บ๋ฆญํ„ฐ ์ ํ”„์™€ ํˆฌ์‚ฌ์ฒด ๊ตฌํ˜„ํ•˜๊ธฐ

 ๊ฒŒ์ž„์—์„œ ์บ๋ฆญํ„ฐ๊ฐ€ ์ ํ”„ํ•˜๊ฑฐ๋‚˜, ์ด์•Œ·ํ™”์‚ด ๊ฐ™์€ ํˆฌ์‚ฌ์ฒด๊ฐ€ ๋‚ ์•„๊ฐ€๋Š” ๋ชจ์Šต์„ ๋ณด๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ณด์ด์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ๋ฌผ๋ฆฌ ๊ณต์‹๊ณผ ๋ฒกํ„ฐ ์—ฐ์‚ฐ์ด ์ ์šฉ๋˜์–ด ์žˆ๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ค‘๋ ฅ, ํฌ๋ฌผ์„  ์šด๋™ ๊ณต์‹์„ ๊ฒŒ์ž„์— ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ Unity ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์•Œ์•„๋ณด์ž.


1. ์ค‘๋ ฅ(Gravity) ์ดํ•ดํ•˜๊ธฐ

  • ์ค‘๋ ฅ์€ ์บ๋ฆญํ„ฐ๋ฅผ ๋•…์œผ๋กœ ๋Œ์–ด๋‹น๊ธฐ๋Š” ํž˜

  • Unity์—์„œ๋Š” Rigidbody๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ค‘๋ ฅ์ด ์ ์šฉ๋จ

  • ์ˆ˜ํ•™ ๊ณต์‹:

y(t)=y0+v0t12gt2y(t) = y_0 + v_0 t - \frac{1}{2} g t^2
  • y(t): ์‹œ๊ฐ„ t์—์„œ์˜ ๋†’์ด

  • y₀: ์ดˆ๊ธฐ ๋†’์ด, v₀: ์ดˆ๊ธฐ ์†๋„, g: ์ค‘๋ ฅ ๊ฐ€์†๋„

Unity ์ฝ”๋“œ ์˜ˆ์‹œ

Rigidbody2D rb = GetComponent<Rigidbody2D>(); rb.velocity = new Vector2(rb.velocity.x, jumpForce);

→ Rigidbody๊ฐ€ ์ค‘๋ ฅ์„ ์ ์šฉํ•˜๋ฉฐ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ ํ”„


2. ํฌ๋ฌผ์„  ์šด๋™(Projectile Motion)

  • ํˆฌ์‚ฌ์ฒด๊ฐ€ ๋‚ ์•„๊ฐ€๋Š” ๊ฒฝ๋กœ๋Š” ํฌ๋ฌผ์„ 

  • ์ˆ˜ํ‰ ์†๋„์™€ ์ˆ˜์ง ์†๋„๋ฅผ ๋‚˜๋ˆ  ๊ณ„์‚ฐ

x(t)=vxt,y(t)=y0+vyt12gt2x(t) = v_x t, \quad y(t) = y_0 + v_y t - \frac{1}{2} g t^2
  • x(t): ์ˆ˜ํ‰ ์œ„์น˜, vโ‚“: ์ˆ˜ํ‰ ์†๋„

  • y(t): ์ˆ˜์ง ์œ„์น˜, vแตง: ์ดˆ๊ธฐ ์ˆ˜์ง ์†๋„

Unity ์ฝ”๋“œ ์˜ˆ์‹œ

void LaunchProjectile(Vector2 direction, float speed) { Rigidbody2D rb = projectile.GetComponent<Rigidbody2D>(); rb.velocity = direction.normalized * speed; }

→ ์ค‘๋ ฅ๊ณผ ์ดˆ๊ธฐ ์†๋„๋ฅผ ๊ณ ๋ คํ•ด ์ž์—ฐ์Šค๋Ÿฌ์šด ํฌ๋ฌผ์„  ์šด๋™


3. ์ ํ”„ ๊ตฌํ˜„ ์‹œ ์ฃผ์˜

  • FixedUpdate์—์„œ Rigidbody์— ํž˜์„ ์ ์šฉ → ์ผ์ •ํ•œ ๋ฌผ๋ฆฌ ๊ณ„์‚ฐ

  • Update์—์„œ ํ‚ค ์ž…๋ ฅ ์ฒ˜๋ฆฌ → ๋ฐ˜์‘ ์†๋„ ํ–ฅ์ƒ

  • ์ค‘๋ ฅ๊ณผ ์ดˆ๊ธฐ ์†๋„๋ฅผ ์ ์ ˆํžˆ ์กฐ์ • → ์ ํ”„ ๋†’์ด/๊ฑฐ๋ฆฌ ์กฐ์ ˆ ๊ฐ€๋Šฅ


4. ์‹ค์Šต ์˜ˆ์ œ

  • ์บ๋ฆญํ„ฐ ์ ํ”„: Space ํ‚ค ๋ˆ„๋ฅด๋ฉด Rigidbody์— ์œ„๋กœ ํž˜ ์ ์šฉ

  • ํˆฌ์‚ฌ์ฒด ๋ฐœ์‚ฌ: ๋งˆ์šฐ์Šค ํด๋ฆญ ์œ„์น˜ ๋ฐฉํ–ฅ์œผ๋กœ ์†๋„ ๋ฒกํ„ฐ ์ ์šฉ

  • ํฌ๋ฌผ์„  ๊ฒฝ๋กœ ์‹œ๊ฐํ™”: LineRenderer๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒฝ๋กœ ํ‘œ์‹œ ๊ฐ€๋Šฅ


5. ๋งˆ๋ฌด๋ฆฌ

์ค‘๋ ฅ๊ณผ ํฌ๋ฌผ์„  ์šด๋™์€ ๊ฒŒ์ž„ ๋ฌผ๋ฆฌ์˜ ํ•ต์‹ฌ์ด๋‹ค.

  • ์ ํ”„, ํˆฌ์‚ฌ์ฒด, ์บ๋ฆญํ„ฐ ๋‚™ํ•˜, ์ ํ”„ ๊ณ„์‚ฐ → ๋ชจ๋‘ ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ˜

  • ๋‹ค์Œ ๊ธ€์—์„œ๋Š” ์ƒํƒœ ๋จธ์‹ (State Machine)์œผ๋กœ ์  AI ํ–‰๋™ ๊ตฌํ˜„์„ ๋‹ค๋ค„, ์›€์ง์ž„ + ์˜์‚ฌ ๊ฒฐ์ •๊นŒ์ง€ ๊ฒŒ์ž„ ๋™์ž‘์„ ํ™•์žฅํ•ด๋ณด๊ฒ ๋‹ค.

๋Œ“๊ธ€

์ด ๋ธ”๋กœ๊ทธ์˜ ์ธ๊ธฐ ๊ฒŒ์‹œ๋ฌผ

๐Ÿš€ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„ ์ตœ์ ํ™”์™€ ์„ฑ๋Šฅ ํŠœ๋‹ – ๋ถ€๋“œ๋Ÿฌ์šด ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด ๊ตฌํ˜„

⚔️ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ์Šคํ‚ฌ/์•„์ดํ…œ ๋™๊ธฐํ™” – ์‹ค์‹œ๊ฐ„ ์ „ํˆฌ ๊ตฌํ˜„

๐ŸŽฌ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ๋ฆฌํ”Œ๋ ˆ์ด ์‹œ์Šคํ…œ ๊ตฌํ˜„ – ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด ๋…นํ™”์™€ ์žฌ์ƒ