본문 바로가기
유니티

유니티 rigidbody

by 실버dev 2019. 11. 7.

rigidbody는 물리효과에 대한 컴포넌트이다.

 

Rigidbody rigid;
 void Start()
 {
	rigid = GetComponent<Rigidbody>(); //괄호 안 타입의 컴포넌트를 가져온다.
									   //2D에서 3D Rigidbody를 쓰면 적용이 안됨.
	rigid.velocity = new Vector3(0, 1, 0); //현재 이동속도

Rigidbody 객체를 만들고 GetComponent로 가져온다.

 

velocity는 속도에 대한 프로퍼티로, Vector3.left/right를 주면 좌 우로 움직이고

사용자가 new Vector3(x, y, z)로 직접 값을 지정할 수도 있다.

 

 

 

 

void FixedUpdate()
{
	rigid.velocity = new Vector3(2, 3, 1);
}

Rigidbody 관련 코드를 업데이트에서 사용할 때는

FixedUpdate에서 작성한다.

 

 

 

rigid.AddForce(Vector3.up * 5, ForceMode.Impulse); // ForceMode : 힘을 주는 방식(가속, 무게 반영)

AddForce로 직접 힘을 가할 수도 있다.

 

 

 

 

void FixedUpdate()
{
	if (Input.GetButtonDown("Jump"))
	{
		rigid.AddForce(Vector3.up * 5, ForceMode.Impulse); // ForceMode : 힘을 주는 방식(가속, 무게 반영)
	}
}

RigidBody를 활용해서 점프 구현.

 

 

 

 

Vector3 vec = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical"));
rigid.AddForce(vec, ForceMode.Impulse);

RigidBody를 이용한 좌우 이동

GetAxisRaw값을 이용해서 힘을 가한다.

이 컴포넌트를 사용한 이동은 보다 자연스럽다.

 

 

rigid.AddTorque(Vector3.up);

AddTorque는 회전에 대한 옵션을 제공한다.

'유니티' 카테고리의 다른 글

유니티 물리충돌 이벤트  (1) 2019.11.07
유니티 오브젝트 충돌 관련 컴포넌트  (1) 2019.11.03
유니티 목표지점으로 이동하기  (1) 2019.11.02
유니티 키입력, 이동  (0) 2019.11.02
유니티 라이프 사이클  (0) 2019.11.02