어제는 Unity에서의 게임 실행 흐름, 다양한 Component 등 몰랐던 지식이나 이미 다뤄봤던 것들을 복습할 겸 골드메탈님의 강의 영상을 보고 공부를 했다.
공부한 것 중에는 이미 게임을 만들면서 여러 번 써봤던 것도 있었고, 새로 배우는 것들도 있어서 되게 흥미로웠다.
내가 영상을 보며 새로 배웠던 것들을 한 번 리뷰해보고자 한다.
그동안 코드를 작성하면서 오브젝트 라이프 사이클 함수를 Start, Update, FixedUpdate 3가지 사용해봤었는데, 이것 외에 다양한 함수가 더 존재한다는 것을 알게 되었다.
Awake(): 게임 오브젝트 생성 시, 최초 실행Start(): Update 시작 직전, 최초 실행FixedUpdate(): 물리 연산 업데이트, 고정된 실행 주기를 가짐Update(): 게임 로직 업데이트LateUpdate(): 모든 업데이트 끝난 후OnDestroy(): 오브젝트가 제거될 때OnEnable(): 게임 오브젝트가 활성화 되었을 때OnDisable(): 게임 오브젝트가 비활성화 되었을 때영상에서는 위 8개의 함수를 배웠다.
그동안 써왔던 함수들 말고는 당장 어떤 경우에 사용해야할지 감이 안 잡히지만 알아주면 나중에 쓸 일이 있을 것이다.
Rigidbody에서 내가 써보지 않았던 다양한 속성 값에 대해서 공부를 했다.
Mass: 무게
말 그대로 무게인데, 이 값이 크면 Object를 움직이는데 필요한 힘이 커진다.
Drag: 공기 저항
Object가 이동할 때 받는 저항 값이다.
이 값도 크면 클수록 Object가 움직이는데 필요한 힘이 커진다.
Angular Drag: 회전 저항
이 값이 크면 Object가 회전할 때 더 회전 속도가 더 빨리 감속된다.
Is Kinematic: 외부 물리 효과 무시
이 값은 Object가 외부로부터 물리 효과를 받지 않는 속성이다.
Player가 수동으로 이동시키는 것은 가능하지만, 외부에서 충돌하거나 중력 등의 힘을 무시한다.
함정같은 Object에 사용하면 유용할 것 같다.
그동안 다뤄보지 않았던 Material에 대해서도 배웠다.
Material은 Object의 재질에 관한 값인데 눈으로 보이는 재질을 직접 설정할 수 있다.
Metallic: 금속 재질 수치 Metallic 최댓값 | Metallic 중간값 | Metallic 최솟값 |
|---|
위 사진에서 보이듯이 Metallic 값에 따라 금속 재질이냐 아니냐가 확연하게 구분이 된다.
Smoothness: 빛 반사 수치 Smoothness 최댓값 | Smoothness 중간값 | Smoothness 최솟값 |
|---|
값이 작을수록 빛 반사가 덜 되는 것을 알 수 있다.
Emission: 텍스쳐 발광(밝기) 조절 Emission 미설정 | Emission 흰색으로 최대 |
|---|
위 사진처럼 설정한 색상으로 밝게 빛나는데.. 솔직히 아직은 어디다 쓰는지 잘 모르겠다.
일단 알고만 있어야 할 것 같다.
Material은 그냥 재질이고, 이건 물리 재질이다.
겉으로 보이는 재질이 아닌 물체의 움직임에 관한 재질을 설정하는 값이다.
Dynamic Friction: 움직임 마찰
Object가 움직이는데 관여하는 마찰이다.
이 값이 높으면 Object를 움직이는데 필요한 힘이 높다.
Static Friction: 정지 마찰
어떤 Object를 처음 움직일 때 관여하는 마찰이다.
이 값이 높으면 Object를 '처음' 움직이는데 필요한 힘이 높다.
Bounciness: 탄성력
이 값이 높으면 위에서 떨어졌을 때 더 많이 튀어오른다.
이 값을 보자마자 공 튀기기 게임을 만들 때 사용할 수 있을 것이라 생각했다.
Friction Combine: 다음 마찰력 계산 방식
Bounce Combine: 다음 탄성 계산 방식
나는 Unity를 시작하면서 이런 이론적인 부분을 제대로 공부하지않고 바로 게임 실습부터 진행했었다.
그러다보니 게임을 만들면서 모르는 부분은 그때마다 찾아보거나, 어떻게 구현해야할지 어려움이 있었다.
이론적인 공부를 진행하지 않고 실습부터 진행한 결과이기에 어쩔 수 없었지만, 앞으로는 Unity에 존재하는 Object나 속성 등을 따로 공부해보는 시간을 가져봐야겠다.
그러면 게임 개발에 있어서도 큰 도움이 될 것이다.