Unity 공부 - Rigidbody, Material, Physics Material

mingu Lee·2025년 3월 14일

Unity 공부

목록 보기
1/5
post-thumbnail

어제는 Unity에서의 게임 실행 흐름, 다양한 Component 등 몰랐던 지식이나 이미 다뤄봤던 것들을 복습할 겸 골드메탈님의 강의 영상을 보고 공부를 했다.

공부한 것 중에는 이미 게임을 만들면서 여러 번 써봤던 것도 있었고, 새로 배우는 것들도 있어서 되게 흥미로웠다.

내가 영상을 보며 새로 배웠던 것들을 한 번 리뷰해보고자 한다.

오브젝트 라이프 사이클


그동안 코드를 작성하면서 오브젝트 라이프 사이클 함수를 Start, Update, FixedUpdate 3가지 사용해봤었는데, 이것 외에 다양한 함수가 더 존재한다는 것을 알게 되었다.

  1. Awake(): 게임 오브젝트 생성 시, 최초 실행
  2. Start(): Update 시작 직전, 최초 실행
  3. FixedUpdate(): 물리 연산 업데이트, 고정된 실행 주기를 가짐
  4. Update(): 게임 로직 업데이트
  5. LateUpdate(): 모든 업데이트 끝난 후
  6. OnDestroy(): 오브젝트가 제거될 때
  7. OnEnable(): 게임 오브젝트가 활성화 되었을 때
  8. OnDisable(): 게임 오브젝트가 비활성화 되었을 때

영상에서는 위 8개의 함수를 배웠다.

그동안 써왔던 함수들 말고는 당장 어떤 경우에 사용해야할지 감이 안 잡히지만 알아주면 나중에 쓸 일이 있을 것이다.

Rigidbody


Rigidbody에서 내가 써보지 않았던 다양한 속성 값에 대해서 공부를 했다.

  1. Mass: 무게
    말 그대로 무게인데, 이 값이 크면 Object를 움직이는데 필요한 힘이 커진다.

  2. Drag: 공기 저항
    Object가 이동할 때 받는 저항 값이다.
    이 값도 크면 클수록 Object가 움직이는데 필요한 힘이 커진다.

  3. Angular Drag: 회전 저항
    이 값이 크면 Object가 회전할 때 더 회전 속도가 더 빨리 감속된다.

  4. Is Kinematic: 외부 물리 효과 무시
    이 값은 Object가 외부로부터 물리 효과를 받지 않는 속성이다.
    Player가 수동으로 이동시키는 것은 가능하지만, 외부에서 충돌하거나 중력 등의 힘을 무시한다.
    함정같은 Object에 사용하면 유용할 것 같다.

Material


그동안 다뤄보지 않았던 Material에 대해서도 배웠다.

Material은 Object의 재질에 관한 값인데 눈으로 보이는 재질을 직접 설정할 수 있다.

  1. Metallic: 금속 재질 수치
    Object가 얼마만큼 금속 재질로 보이느냐를 결정하는 값이다.
    이 값이 낮으면 비금속, 높으면 더 금속처럼 보인다.
Metallic 최댓값Metallic 중간값Metallic 최솟값

위 사진에서 보이듯이 Metallic 값에 따라 금속 재질이냐 아니냐가 확연하게 구분이 된다.

  1. Smoothness: 빛 반사 수치
    빛을 얼마나 반사하는지에 대한 값이다.
Smoothness 최댓값Smoothness 중간값Smoothness 최솟값

값이 작을수록 빛 반사가 덜 되는 것을 알 수 있다.

  1. Emission: 텍스쳐 발광(밝기) 조절
    빛이 물리적으로 나오는 것은 아니지만 이 값을 높이면 Object가 좀 더 밝아진다.
Emission 미설정Emission 흰색으로 최대

위 사진처럼 설정한 색상으로 밝게 빛나는데.. 솔직히 아직은 어디다 쓰는지 잘 모르겠다.

일단 알고만 있어야 할 것 같다.

Physics Material


Material은 그냥 재질이고, 이건 물리 재질이다.

겉으로 보이는 재질이 아닌 물체의 움직임에 관한 재질을 설정하는 값이다.

  1. Dynamic Friction: 움직임 마찰
    Object가 움직이는데 관여하는 마찰이다.
    이 값이 높으면 Object를 움직이는데 필요한 힘이 높다.

  2. Static Friction: 정지 마찰
    어떤 Object를 처음 움직일 때 관여하는 마찰이다.
    이 값이 높으면 Object를 '처음' 움직이는데 필요한 힘이 높다.

  3. Bounciness: 탄성력
    이 값이 높으면 위에서 떨어졌을 때 더 많이 튀어오른다.
    이 값을 보자마자 공 튀기기 게임을 만들 때 사용할 수 있을 것이라 생각했다.

  4. Friction Combine: 다음 마찰력 계산 방식

  5. Bounce Combine: 다음 탄성 계산 방식

느낀 점


나는 Unity를 시작하면서 이런 이론적인 부분을 제대로 공부하지않고 바로 게임 실습부터 진행했었다.

그러다보니 게임을 만들면서 모르는 부분은 그때마다 찾아보거나, 어떻게 구현해야할지 어려움이 있었다.

이론적인 공부를 진행하지 않고 실습부터 진행한 결과이기에 어쩔 수 없었지만, 앞으로는 Unity에 존재하는 Object나 속성 등을 따로 공부해보는 시간을 가져봐야겠다.

그러면 게임 개발에 있어서도 큰 도움이 될 것이다.

profile
Github: https://github.com/dlalsrn

0개의 댓글