Unity Rigidbody로 물리 적용하기
유니티에서 물체의 움직임을 자동으로 계산하게 해주는 방법이 있을까요?
Rigidbody를 사용하면 유니티에서 물리 엔진이 자동으로 물체의 움직임을 계산해 줍니다.
우리는 이 글을 통해서 Rigidbody가 무엇인지, 어떻게 사용하는지 그리고 사용법에 대해서 간략하게 알아보도록 하겠습니다.
초보자도 쉽게 이해할 수 있는 Rigidbody 개념과 사용법에 대해서 간단하게 구현까지 해볼게요
유니티에서 진짜처럼 움직이게 할 수 있나요?
우리가 지금 운동장에 있다고 가정해 볼게요 우리는 지금 운동장에서 축구를 하고 있습니다.
골키퍼가 공을 멀리 차서 우리 편 공격수가 헤딩 경합을 하고 있네요
그런데 공이 살짝 옆에 떨어져서 땅에 떨어졌어요 그럼 공이 어떻게 될까요?
땅에 튀긴 공이 반발력 때문에 다시 땅에서 튀어 오르겠죠? 유니티에서도 이런 작동을 가능하게 할 수 있습니다.
이렇게 진짜 같은 움직임을 만들기 위해서는 물리 법칙이 필요한데요
유니티에서는 물리적인 효과를 아주 쉽게 적용하는 방법이 있습니다. 바로 Rigidbody를 사용하면 됩니다.
유니티에서 간단하게 큐브나 스피어를 추가한 상태에서 아무것도 하지 않으면 진짜 그림처럼 그냥 가만히 있습니다.
움직이지도 않고 아무런 작동을 하지 않아요 그렇기 때문에 현실처럼 보여주기 위해서 추가적인 작업이 필요합니다.
여기서 Rigidbody를 추가하면 중력, 속도, 충돌과 같은 물리 효과를 자동으로 적용할 수 있습니다.
Rigidbody가 뭘까요?
Rigidbody는 유니티의 물리엔진에 물체를 등록하는 기능이라고 생각하시면 이해가 쉬울 거예요
우리가 물체가 작동하길 원하는 큐브나 스피어에 Rigidbody를 설정하게 되면 물리 법칙을 따라 하여야 한다는 걸 정해주는 겁니다.
그럼 Rigidbody를 설정하면 어떤 일이 일어날까요?
1. 중력이 작용합니다. (Rigidbody를 추가하고 가만히 내버려 두면 오브젝트가 아래쪽으로 혼자 떨어집니다.)
2. 힘을 주면 움직입니다.(Push)
3. 다른 물체에 부딪히면 튕깁니다. (Collision)
자 그럼 Rigidbody 설정에 대해서 간단하게 알아보도록 하겠습니다.
Rigidbody 설정을 하고 싶다면 일단 먼저 오브젝트를 선택한 다음 Inspector 창 가장 아래 있는 Add Component를 눌러서 Rigidbody를 추가해 주세요
그럼 이렇게 Rigidbody가 추가된 걸 확인할 수 있습니다. 여기서 어떤 설정이 있는지 간단하게 알아보도록 하겠습니다.
Use Gravity
체크 시 중력이 작용합니다. (체크 상태에서 신을 실행시키면 물체가 아래로 떨어집니다. 이미지에서는 체크 해제 상태입니다.)
체크 해제 상태에서는 공중에 떠있도록 할 수 있습니다.
Is Kinematic
체크하면 물리 엔진이 이 물체를 무시합니다.
애니메이션이나 스크립트로 직접 움직일 때 사용하는 기능입니다.
Mass
질량입니다. 숫자가 크면 클수록 무거워지도록 설정할 수 있습니다.
그럼 어떻게 될까요? 같은 힘을 주더라도 물체가 덜 움직이도록 설정할 수 있습니다.
Angular Drag
회전 저항을 설정할 수 있습니다.
회전 속도를 줄이는 데 사용되는 기능입니다. 높은 값일수록 회전이 빨리 멈춥니다.
그럼 간단하게 공을 튀기기를 해볼게요
자 먼저 일단 공이 튀기도록 하기 위해서 추가적으로 작업해줘야 할 사항이 있습니다.
Project 우클릭 - Physics Material을 선택해 주세요
그다음 새로 만든 Physics Material를 선택한 다음 Inspector 창에서 Bounciness를 1에 가깝게 설정해 주세요
그리고 하단에 있는 Friction Cmbine과 Bounce Combine을 설정해 주세요 Maximum에 가까울수록 더 자연스럽게 튀깁니다.
그리고 적용한 설정을 스피어에 추가해 주세요 그럼 실행시켜 보도록 하겠습니다.
공이 제대로 튀기는 게 보이시죠? Rigidbody와 물리 효과를 이용해서 공을 튀기는 거까지 해봤습니다.
자 다시 정리해 볼게요 Rigidbody는 유니티에서 진짜처럼 움직이는 게임을 만들기 위한 첫걸음입니다.
입문자도 어렵지 않게 사용할 수 있는 기능이고 다양하게 옵션을 조절하면 원하는 물리 효과를 만드는 것도 가능합니다.
앞으로 유니티에서 뭔가 움직이게 하고 싶다면 꼭 Rigidbody를 기억해 주세요!
유니티에 대해서 추가적으로 궁금하신 내용이 있으시다면 하단의 링크를 참고해 주세요
[Unity] 유니티에서 충돌 없이 이벤트 발생시키기: 트리거(Trigger) 완전히 이해하기
다양한 상황에서 유용하게 활용하는 이벤트 발생 기능 게임 오브젝트가 부딪혀야만 반드시 이벤트가 발생할...
blog.naver.com
[Unity] 유니티 컴포넌트가 뭐야? 초보자도 5분 만에 이해하는 핵심 정리
ochosblogg.blogspot.com
[Unity] 처음 만나는 유니티 화면, 쉽게 배우는 인터페이스 완전 정리
창이 너무 많은데 뭐가 뭘까유니티 화면이 복잡해요 우리가 유니티를 설치했을 때 당황하게 됩니다. 설치하고 나서 처음 실행시켜 보셨다면 말이죠왜냐하면 무수히 많은 창과 메뉴가 동시에 나
raphaelspace7.com
'Unity' 카테고리의 다른 글
[Unity] Unity 입문자를 위한 GameObject 완전 이해하기 (0) | 2025.05.10 |
---|---|
[Unity] 처음 만나는 유니티 화면, 쉽게 배우는 인터페이스 완전 정리 (0) | 2025.04.30 |