πŸ”Ί 벑터와 ν–‰λ ¬λ‘œ μ΄ν•΄ν•˜λŠ” 캐릭터 이동 – κ²Œμž„ 개발 μˆ˜ν•™ μ™„μ „ 정리

 

κ²Œμž„μ—μ„œ 캐릭터가 μžμ—°μŠ€λŸ½κ²Œ μ›€μ§μ΄λŠ” κ²ƒμ²˜λŸΌ 보여도, μ‹€μ œλ‘œλŠ” **벑터(Vector)와 ν–‰λ ¬(Matrix)**λΌλŠ” μˆ˜ν•™ κ°œλ…μ΄ λ’€μ—μ„œ μ›€μ§μž„μ„ κ³„μ‚°ν•œλ‹€.
이번 κΈ€μ—μ„œλŠ” 벑터와 ν–‰λ ¬μ˜ κΈ°λ³Έ κ°œλ…λΆ€ν„°, Unityμ—μ„œ 캐릭터 이동 κ΅¬ν˜„κΉŒμ§€ μ‰½κ²Œ 풀어보겠닀.


1. 벑터(Vector)λž€?

  • 크기와 λ°©ν–₯을 κ°€μ§„ λ°©ν–₯ κ°’

  • 2D 벑터: (x, y) → xμΆ• λ°©ν–₯, yμΆ• λ°©ν–₯

  • 3D 벑터: (x, y, z) → 3차원 곡간

μ˜ˆμ‹œ: 캐릭터 이동

Vector3 moveDirection = new Vector3(1, 0, 0); // 였λ₯Έμͺ½ λ°©ν–₯ transform.position += moveDirection * speed * Time.deltaTime;

→ λ²‘ν„°λŠ” λ°©ν–₯ + 속도 계산에 핡심


2. 벑터 μ—°μ‚° κΈ°λ³Έ

  • λ§μ…ˆ: 두 λ²‘ν„°μ˜ λ°©ν–₯κ³Ό 크기 ν•©μ‚°

  • λΊ„μ…ˆ: λͺ©ν‘œ 지점과 ν˜„μž¬ μœ„μΉ˜ 차이 → 이동 λ°©ν–₯

  • 슀칼라 κ³±: 벑터 크기 쑰절 (속도 쑰절)

  • μ •κ·œν™”(Normalize): 크기λ₯Ό 1둜 λ§Œλ“€μ–΄ λ°©ν–₯만 ν™œμš©

Vector3 direction = (target.position - transform.position).normalized; transform.position += direction * speed * Time.deltaTime;

→ λͺ©ν‘œ 지점을 ν–₯ν•΄ 일정 μ†λ„λ‘œ 이동


3. ν–‰λ ¬(Matrix)λž€?

  • 벑터 λ³€ν™˜μ„ μœ„ν•œ 2D/3D μˆ˜ν•™ ꡬ쑰

  • νšŒμ „(Rotation), 이동(Translation), ν™•λŒ€/μΆ•μ†Œ(Scale) 적용 κ°€λŠ₯

  • Unity λ‚΄λΆ€μ μœΌλ‘œ Transform은 ν–‰λ ¬ μ—°μ‚°μœΌλ‘œ 처리

μ˜ˆμ‹œ: νšŒμ „

transform.Rotate(new Vector3(0, 1, 0), 90f * Time.deltaTime);

→ YμΆ• κΈ°μ€€μœΌλ‘œ λ§€ ν”„λ ˆμž„ 90도/sec νšŒμ „


4. 벑터 + ν–‰λ ¬λ‘œ 이동 κ΅¬ν˜„

  • μœ„μΉ˜ 이동: position += direction * speed * deltaTime

  • νšŒμ „: transform.rotation = Quaternion.Euler(...) → ν–‰λ ¬/μΏΌν„°λ‹ˆμ–Έ 적용

  • μŠ€μΌ€μΌ: transform.localScale = new Vector3(1, 1, 1)

즉, 캐릭터 이동은 **벑터(λ°©ν–₯, 속도) + ν–‰λ ¬(νšŒμ „, λ³€ν™˜)**의 κ²°ν•©μœΌλ‘œ λ§Œλ“€μ–΄μ§„λ‹€.


5. 마무리

벑터와 행렬을 μ΄ν•΄ν•˜λ©΄,

  • ν”Œλ ˆμ΄μ–΄, NPC, 카메라 μ›€μ§μž„μ„ μ •ν™•ν•˜κ³  예츑 κ°€λŠ₯ν•˜κ²Œ μ œμ–΄

  • μ• λ‹ˆλ©”μ΄μ…˜, νˆ¬μ‚¬μ²΄, 이동 경둜 계산 λ“± κ²Œμž„ μ „λ°˜μ˜ 핡심 μˆ˜ν•™μ„ 이해

πŸ‘‰ λ‹€μŒ κΈ€μ—μ„œλŠ” 쀑λ ₯, 포물선 μš΄λ™ κ³΅μ‹μœΌλ‘œ 점프/νˆ¬μ‚¬μ²΄ κ΅¬ν˜„μ„ λ‹€λ€„μ„œ 물리 기반 μ›€μ§μž„μ„ κ΅¬ν˜„ν•΄λ³΄κ² λ‹€.

λŒ“κΈ€

이 λΈ”λ‘œκ·Έμ˜ 인기 κ²Œμ‹œλ¬Ό

πŸš€ λ©€ν‹°ν”Œλ ˆμ΄μ–΄ κ²Œμž„ μ΅œμ ν™”μ™€ μ„±λŠ₯ νŠœλ‹ – λΆ€λ“œλŸ¬μš΄ κ²Œμž„ ν”Œλ ˆμ΄ κ΅¬ν˜„

⚔️ λ©€ν‹°ν”Œλ ˆμ΄μ–΄ μŠ€ν‚¬/μ•„μ΄ν…œ 동기화 – μ‹€μ‹œκ°„ μ „νˆ¬ κ΅¬ν˜„

🎬 λ©€ν‹°ν”Œλ ˆμ΄μ–΄ λ¦¬ν”Œλ ˆμ΄ μ‹œμŠ€ν…œ κ΅¬ν˜„ – κ²Œμž„ ν”Œλ ˆμ΄ 녹화와 μž¬μƒ