Unity의 AddForce
함수에서 사용하는 ForceMode
는 오브젝트에 힘을 가하는 방식과 효과를 조절할 수 있는 옵션
1. ForceMode.Force
지속적인 힘을 가하는 방식. 프레임마다 일정한 크기의 힘이 적용되어 물체의 질량을 고려해 가속도가 증가.
Newton의 두 번째 운동 법칙
F = ma
를 사용하여 힘을 계산하므로, 질량이 큰 오브젝트는 더 천천히 가속.용도: 중력이나 지속적으로 작용하는 바람 등, 꾸준히 적용되는 힘을 표현할 때 적합.
rigidbody.AddForce(direction * power, ForceMode.Force);
2. ForceMode.Acceleration
가속도를 직접 적용하는 방식.
Force
와 비슷하지만, 질량을 무시하고 가속도만을 추가.가벼운 물체나 무게와 상관없이 일정하게 움직여야 할 때 사용.
용도: 질량과 관계없이 가속도만을 적용하고 싶을 때 사용.
rigidbody.AddForce(direction * power, ForceMode.Acceleration);
3. ForceMode.Impulse
순간적인 힘(충격)을 가하는 방식으로, 물체의 질량을 고려하여 즉각적으로 속도가 증가.
Force
와 차이점은 단시간에 큰 힘을 주어 물체의 속도를 빠르게 변화시킴.용도: 점프, 총알 발사, 충돌 등의 순간적 힘을 표현할 때 적합.
rigidbody.AddForce(direction * power, ForceMode.Impulse);
4. ForceMode.VelocityChange
즉각적으로 속도를 변경합니다. 물체의 질량을 무시하고 속도만을 바로 적용하여 오브젝트를 원하는 방향으로 이동시킴.
질량에 상관없이 일정한 속도를 추가하는 데 유용.
용도: 물체를 특정 속도로 갑작스럽게 움직여야 하는 경우, 즉각적인 속도 변화가 필요할 때 사용.
rigidbody.AddForce(direction * power, ForceMode.VelocityChange);
'Unity&C# > Unity' 카테고리의 다른 글
TMP_Text vs TextMeshPro vs TextMeshProUGUI (1) | 2024.11.08 |
---|---|
[Unity] 디버그 모드와 SerializeField (0) | 2024.11.01 |
[Unity] Tag와 Layer의 성능차이 (0) | 2024.10.28 |
[Unity] Monobehaviour를 상속받지 않은 클래스에서 Coroutine 실행하기 (0) | 2024.10.20 |
[Unity] OvelapSphere (0) | 2024.10.17 |