생각해보면 게임 개발자가 되기 위해 무턱대고 달리고 있어 사용법은 알지만 구체적인 정의를 모르고 살았던 것 같습니다.
시스템 안에서 돌아가는 원리는 대략 이해되는데 정작 말로 설명하자니 말문이 막혀서 이 글을 통해 정리해보려고 합니다.
기본 단어
인스턴스 : 이미 만들어진 오브젝트를 필요할 때마다 생성한다는 의미
렌더링 : 3차원(3D) 공간에 물체를 표현하는 의미
드로우 : 2차원(2D) 공간에 물체를 표현하는 의미
목차
- 메테리얼 (Material)
- 콜라이더 (Collider) & 리지드바디 (Rigidbody)
- 프리팹 (Prefab)
- 빌드 (Build)
- 이벤트 함수 실행 순서
- 코루틴 (Coroutine)
- Invoke
- 코루틴과 Invoke 차이
- Unity의 가비지 컬렉션
1. 메테리얼 (Material)
- 메테리얼은 게임 오브젝트의 렌더링 효과를 결정하는 속성을 가진 컴포넌트입니다.
2. 콜라이더 (Collider) & 리지드바디 (Rigidbody)
콜라이더는 오브젝트의 충돌을 감지할 수 있게 해주는 컴포넌트입니다.
리지드바디는 오브젝트에 물리엔진을 적용할 수 있습니다. (중력, 무게, …)
리지드바디는 충돌과 반응을 구현하기 위해 콜라이더와 함께 사용됩니다.
3. 프리팹 (Prefab)
미리 만들어 놓은 오브젝트를 필요할 때마다 Project에서 인스턴스화하여 사용할 수 있는 기능입니다.
이 덕분에 중복된 오브젝트를 줄이고 효율적인 개발이 가능합니다.
4. 빌드 (Build)
Editor 상황에서 실행 가능한 게임으로 만들어주는 작업입니다.
Unity 특성 덕분에 다양한 플랫폼으로 빌드가 가능합니다. ( Window, iOS, Android, VR, … )
5. 유니티 이벤트 함수 실행 순서
자주 사용되는 함수로 나열했습니다.
- Awake -> OnEnable -> Start -> FixedUpdate -> Update -> LateUpdate -> OnDisable -> OnDestroy
Awake
최초 1회 프리팹이 인스턴스화 된 직후 호출 됩니다.
스크립트가 비활성화 되어 있어도 호출됩니다.
OnEnable
스크립트가 활성화 되어있다 가정합니다.
오브젝트가 활성화되면 호출됩니다.
Start
스크립트가 활성화 되어 있을 때 오브젝트를 활성화하면 호출됩니다.
스크립트가 꺼져있으면 오브젝트를 활성화해도 호출되지 않습니다.
FixedUpdate
설정된 값에 따라 일정한 간격으로 호출됩니다.
주로 물리 효과가 적용된 오브젝트에 사용됩니다.
Update
- 일반적으로 사용되는 함수로 스크립트가 활성화 상태일 때 매 프레임마다 호출합니다.
LateUpdate
모든 Update가 호출되면 마지막으로 호출되는 함수입니다.
주로 위치 조정이 필요한 오브젝트에 사용됩니다. ( 예: 카메라가 플레이어 위치를 따라갈 때 )
OnDisable
스크립트가 활성화 되어있다 가정합니다.
오브젝트가 비활성화되면 호출 됩니다.
OnDestroy
오브젝트가 파괴될 때 호출됩니다.
스크립트가 비활성화 되어 있어도 호출됩니다.
6. 코루틴 (Coroutine) ⭐
- [Unity 코루틴 이해하기] 글을 읽어주세요!
7. Invoke
Invoke는 시간을 설정하여 함수의 실행을 지연시키는 기능입니다.
코루틴과 비슷하지만 단순히 함수를 지연시킬 생각이라면 Invoke가 더 편합니다.
InvokeRepeating(
함수명
,지연 시간
,지연 후 반복할 시간
)- 함수시간을 지연한 후 지정된 시간마다 반복 실행하는 기능입니다.
CancelInvoke(
반복 중인 함수
)- 반복 실행 중인 함수를 취소시키는 기능입니다.
8. 코루틴과 Invoke 차이
- 코루틴은 함수 안에서 지연시킬 수 있지만 Invoke는 단순히 함수만 지연시킬 수 있습니다.
9. Unity의 가비지 컬렉션
- [가비지 컬렉션 (GC)] 글을 읽어주세요!