GameObject의 물리 엔진을 동작하게 하는 Rigidbody!!
그 중에서 개인적으로 가장 자주 사용하는건 Use Gravity이다. (Is Kinematic은 그냥 같이..)
유니티 매뉴얼을 보면
Use Gravity | 활성화되면 오브젝트는 중력의 영향을 받습니다. |
Is Kinematic | 활성화되면 오브젝트는 물리 엔진으로 제어되지 않고 오로지 Transform 으로만 조작됩니다. 플랫폼을 옮기는 경우나 HingeJoint 가 추가된 리지드바디를 애니메이션화하는 경우에 유용합니다. |
이런식으로 설명이 나와있는데 나는 '일정 상황에서 오브젝트의 이동을 멈출 때(고정할 때)' 두 옵션을 사용했다.
인게임에서 상호작용 하려면 일정 조건에서 Use Gravity랑 Is Kinematic에 접근해야한다.
Rigidbody Rigid;
void Start()
{
Rigid = GetComponent<Rigidbody>(); //Rigid 변수에 Rigidbody 컴포넌트 정보 전달
Rigid.useGravity = false; // 끄기
Rigid.isKinematic = true; //켜기
}
사용 방법은 Rigidbody 변수를 만들어서 직접적으로 true, false로 변경해준다.
이 스크립트는 시작하자마자 중력이 꺼지고 물리 엔진으로 이동할 수 없게된다.
사용예시
//오브젝트가 충돌하면 중력을 끄고 물리효과를 받지 못하게 해라
void OnCollisionEnter(Collision collision)
{
Rigid.useGravity = false;
Rigid.isKinematic = true;
}
'UNITY' 카테고리의 다른 글
[UNITY] Animation / Animator Controller 애니메이션 사용하기 (0) | 2022.04.04 |
---|---|
[UNITY] Find / FindWithTag | 오브젝트 찾기 (0) | 2022.01.10 |
[UNITY] RigidbodyConstraints | Rigidbody 움직임 제한하기 (0) | 2022.01.09 |
[UNITY] Application.Quit() 실행 중인 게임 종료하기 (0) | 2022.01.07 |
[UNITY] SetActive, ActiveSelf 오브젝트 활성화 / 비활성화에 접근하기 (0) | 2022.01.07 |