유니티/프로그래밍
[Unity] 오브젝트마다 중력값 다르게 하기
송호정
2019. 9. 18. 10:34
반응형
Rigidbody 컴포넌트 사용시 해당 오브젝트에게 중력을 부여할수 있습니다.
그 중력 값은 Edit > Project setting > physics 가면 중력값 변경할수 있습니다.
혹은 스크립트 상에서 Physics.gravity = new Vector3(0,-10f,0); 와 같이 코드입력하여 제어 할수 있습니다.
위와같이 중력값을 변경하게 되면 Rigidbody 컴포넌트를 가진 오브젝트들이 영향을 받습니다.
오브젝트 개별적으로 중력값 다르게 하려면 어떻게 해야할까요
오브젝트 개별적으로 중력값 다르게 하는 방법입니다 .
1. 해당 오브젝트에 Constant Force 컴포넌트를 추가 하고 Force 벡터 값에 원하는 중력값을 넣습니다.
2. 스크립트상에서 FixedUpdate () 함수문 안에 Rigidbody.Addforce 활용하는것입니다.
float forceGravity = 50f;
private void FixedUpdate()
{
rigidbody.AddForce(Vector3.down * forceGravity);
}
위 두방법으로 하게되면 Physics.gravity 값을 받고 추가적으로 1번, 2번 방법의 값을 받아
더 중력값을 받거나 덜 중력값을 받게 하여 오브젝트 개별적으로 중력값 줄수 있게 됩니다.
사용 예시)
- 특정 캐릭터는 점프후 낙하속도를 빠르게 하고싶다.
(위 2번 방법으로는 y방향 값을 높여 주면됩니다)
이상, 오브젝트 개별적으로 중력값 다르게 하는 방법이었습니다.
반응형