1.초기화

 

Reset

개체가 처음 연결되었을 때 스크립트의 프로퍼티로 초기화하는데 호출되거나, Rest 명령을 실행했을 때 호출된다.

 

Awake

항상 Start 함수 이전 및 프리팹의 인스턴스 화 직후에 호출된다.

만약 게임 오브젝트가 시작할 때 무효인 경우 , 활성화되거나 연결된 하나의 스크립트가 호출 될 때 까지

Awake 는 호출되지 않는다.

1) 모든 오브젝트가 초기화 된 후 호출된다.

2) Start 함수 전에 호출

3) 코루틴 동작 불가능

 

OnEnable

이 함수 는 오브젝트를 활성화 한 직후에 호출된다. 이것은 MonoBehaviour 인스턴스가 생성될 때,

예를 들어 레벨 로드 또는 스크립트 컴포넌트에 연결된 게임 오브젝트가 인스턴스화 될 때 발생한다.

1) 플레이모드 중에 스크립트를 편집할 경우, 편집이 끝난 후 스크립트가 다시 로딩되면 호출된다.

이 때 awake와 start는 호출이 되지 않는다.

2) awake 함수 호출 후 호출됨.

 

Start

스크립트의 인스턴스가 활성화되면 첫 번째 프레임의 업데이트 전에 Start가 호출된다.

Update 함수가 처음 호출될 때, Update함수 직전에 단 한번 호출된다.

1)Awake 와 다르게 Start 함수는 스크립트가 켜져 있을 때 호출된다. (awake 는 스크립트가 꺼진 상태에도 호출됨)

 

2. 물리

FixedUpdate 

스크립트가 켜져있을 때, 매 프레임마다 호출된다.

1) 설정한 값에 따라 일정한 간격으로 호출.

2) 모든 물리계산 업데이트는 FixedUpdate 이후 즉시 발생한다.

3) 일정한 시간으로 호출되기 때문에 Time.deltaTime을 곱할필요가 없다.

4) RigidBody를 다룰 때, 일정한 힘을 가할 때, Update함수 대신에 사용

-> 사용이유 ? : 불규칙 적인 Update에서는 물리엔진충돌 검사 등이 잘 안될 수 있다.

 

yield WaitForFixedUpdate (코루틴)

모든 FixedUpdate가 모든 스크립트에 호출된 후 호출.

 

OnTriggerEnter(Collider other) : Trigger에 들어갔을 때

OnTriggerStay (Collider other): Trigger 안에 있을 때

OnTriggerExit(Collider other) : Trigger를 벗어날 때

 

충돌처리하는 두 오브젝트에 충돌체크를 할 수 있는 Collider 가 있어야 한다.

충돌처리하는 두 오브젝트 중 하나에 isTrigger가 체크되어야 한다.

 

OnCollisionEnter(Collision other) : Collision에 들어갔을 때

OnCollisionStay(Collision other) : Collision과 충돌하고 있는 중

OnCollisionExit(Collision other) : Collision과 충돌에서 벗어났을 때

 

충돌처리하는 오브젝트들이 RigidBody를 가지고 있다면,

오브젝트 모두 isTrigger가 언체크되어 있어야 하며,

둘중 한 오브젝트는 is Kinematic이 언체크되어야 한다.

 

3.입력

onMouseXXX

마우스입력으로 호출되는 이벤트함수.

 

4.게임 로직

Update

매 프레임마다 한번씩 호출된다.

 

LateUpdate

Update 후 프레임마다 한번 씩 호출된다. Update에서 수행되는 계산이 완료되면, LateUpdate()함수가 시작한다.

일반적으로 3인칭 카메라에서 Update()에서 캐릭터를 이동하고 회전시킬 경우, LateUpdate()에서 카메라의 이동과

회전 계산을 수행하는 식으로 사용한다.

 

 

5.렌더링

5.1 Scene Rendering

 

OnWillRenderObject

카메라에 오브젝트가 표시되면 각 카메라에 한번 호출

1)스크립트가 활성화 되어 있어야 호출된다.

2)모든 컬링된 객체들을 렌더링하기 바로 직전의 과정인 컬링 처리중에 호출

 

OnPreCull

카메라가 씬을 추려내기 전에 호출된다.

컬링하여 카메라에 어떤 오브젝트를 표시할 지가 결정된다. OnPreCull은 컬링이 발생하기 직전에 호출된다.

1)카메라에 붙어 있는 스크립트에만 호출된다.

2)카메라의 속성을 바꾸고 싶을 때 사용하면 좋다.

 

OnBecameVisible / OnBecameInvisible

카메라에 표시되거나 / 표시되지 않을 때 호출된다.

 

OnPreRender

카메라가 씬 렌더링을 시작하기 전에 호출된다.

오브젝트가 렌더링 처리 된 후 호출된다.

 

OnRenderObject(queIndex:int)

오브젝트가 렌더링처리 된 후 호출.

1)queueIndex는 해당 오브젝트를 렌더링할 때 사용하는 렌더 큐의 값

 

OnPostRender

카메라가 씬의 렌더링을 종료한 후 호출.

1)카메라에 붙어 있는 스크립트에만 호출

2)해당 카메라가 모든 오브젝트를 렌더링한 후 호출

 

OnRenderImage

화면 렌더링이 완료되고, 화면 이미지 처리가 가능하게 된 후 호출.

호출되는 시점 : 씬 렌더링이 완료된 후 호출

 

5.2 Gizmo rendering

OnDrawGizmos

특징

1. 시각화 목적으로 씬 뷰에 기즈모를 그릴 때 사용

 

6. End of fame

하나의 프레임이 완전히 종료될 때 호출된다.

1) Update, LateUpdate이벤트가 모두 실행되고 화면에 렌더링이 끝난 이후 호출된다.

 

6. 코루틴

일반적인 코루틴 업데이트는 Update 함수가 반환된 후 수행됩니다.

코루틴은 YieldInstruction이 종료할 때까지 그 실행(생성)을 중지할 수 있는 함수.

 

7.이후

OnApplicationPause

홈키로 어플을 내려 pause 상태로 만들었을 때의 처리

 

OnDisable

스크립트가 비활성화 되거나 오브젝트가 비활성 상태가 될 때 호출.

1) 오브젝트가 제거되는 경우에도 호출.

2) 삭제를 위한 작업에 사용.

3) 에디터모드일 때 스크립트가 다시 로드되는 경우에 호출.

4) Start와 달리 코루틴 사용할 수 없음.

 

OnApplicaitionQuit

어플이 종료되기 전에 모든 게임오브젝트에 전달한다.

에디터에서는 사용자가 플레이모드를 멈추는 경우에 호출된다.

 

OnDestroy

오브젝트 존재의 마지막 프레임 업데이트를 마친 후에 호출

1) 씬 게임이 종료될 때도 발생

2) 오브젝트가 상태가 활성화 상태였던 경우에만 호출

'공부 > 개념 & 유용한 내용' 카테고리의 다른 글

에셋 번들 개념  (0) 2020.08.27
유니티 게임 오브젝트  (0) 2020.08.11
TCP & UDP  (0) 2020.07.17
Collider 처리 속도, 사용처 , 주의점  (1) 2020.07.16
게임에서의 Vector - 내적 / 외적  (0) 2020.07.16

+ Recent posts