본문 바로가기
UNITY/PROJECT

캐릭터 이동 방식의 장단점

by 램플릿 2024. 10. 18.
_rigidbody.MovePosition(transform.position + moveVector * _moveSpeed * Time.fixedDeltaTime);

 

playerObject.transform.position +=
    playerSpeed * Time.deltaTime * _playerMoveVector3; 

 

 

유니티에서 캐릭터를 움직일 때, (1)과 (2) 방법 각각의 장단점이 있습니다.

(1) playerObject.transform.position += playerSpeed * Time.deltaTime * _playerMoveVector3;

  • 장점:
    • 간단하고 이해하기 쉬움.
    • Transform 컴포넌트를 직접 조작하므로 즉각적으로 변화가 나타남.
  • 단점:
    • 물리 엔진과의 충돌 처리가 제대로 이루어지지 않음.
    • 프레임 드랍이나 불규칙한 프레임 레이트에서 이동이 일관되지 않을 수 있음.

(2) _rigidbody.MovePosition(transform.position + moveVector * _moveSpeed * Time.fixedDeltaTime);

  • 장점:
    • 물리 엔진을 통해 움직임이 이루어지므로 충돌 처리에 더 적합함.
    • FixedUpdate에서 사용해야 하므로 프레임 독립적인 움직임을 보장함.
  • 단점:
    • RigidBody를 사용하는 경우 설정이 좀 더 복잡할 수 있음.
    • Rigidbody의 다른 물리 속성에 영향을 받을 수 있음 (예: 중력).

결론

일반적으로, 물리 기반의 게임에서는 (2) 방법을 사용하는 것이 더 좋습니다. 물리 엔진의 영향을 받아서 더 자연스럽고 일관된 움직임을 보장할 수 있기 때문입니다. 간단한 게임이나 물리 효과가 필요 없는 경우에는 (1) 방법도 괜찮습니다. 상황에 따라 적절한 방법을 선택하는 것이 중요합니다!

'UNITY > PROJECT' 카테고리의 다른 글

프로퍼티와 public 필드의 차이점  (0) 2024.10.29
magnitude와 sqrMagnitude  (0) 2024.10.29
Time.deltaTime  (2) 2024.10.22
Input.GetAxis와 Input.GetAxisRaw  (1) 2024.10.07
파티클에 collider 설정하기  (0) 2024.08.22