목록

Unity 이벤트 함수들 정리

그냥 Unity 이벤트 함수 뭐뭐있나 다시 리마인드 겸…


#에디터

  • Reset : Reset은 개체가 처음 연결되었을 때 스크립트의 프로퍼티로 초기화하는 데 호출됩니다.
    Reset 명령을 실행했을 때도 마찬가지입니다.

첫 씬 로드

  • Awake : 이 함수는 항상 Start함수의 이전 및 프리팹 인스터스화 직후 바로 호출.
    (만약 게임 오브젝트가 시작할 떄 무효인 경우, 활성화되거나 연결된 하나의 스크립트 함수가 호출될 떄까지, Awake는 호출 되지 않는다.)

  • OnEnable : 오브젝트 활성화된 경우만 호출

  • OnLevelWasLoaded : 새로운 레벨이 로드될 때 호출

씬에 추가 된 오브젝트에서 모든 스크립트는 Start, Update 등 기타 함수가 호출되기 전에 Awake와 OnEnable 함수가 호출되는 것에 주의하십시오.

당연히 오브젝트가 게임 플레이 중에 인스턴스화 되었을 때 강제로 호출할 수 없습니다.


#첫 프레임 업뎃 전

  • Start : 인스턴스 활성화되면 첫 프레임 업뎃전 호출.(Update전)

#프레임 사이

  • OnApplicationPase : 일반 프레임 업뎃 사이에 pause가 탐지된 프레임의 끝에서 호출.

#업데이트 순서

게임 로직 인터랙션, 애니메이션, 카메라 위치 등을 추적하는 경우, 각종 이벤트를 사용할 수 있습니다.
일반적인 패턴은 Update() 함수 내에서 대부분의 작업을 수행하는 것입니다만, 다른 함수도 사용할 수 있습니다.

  • FixedUpdate : FixedUpdate()는 Update()보다 자주 호출되는 경우가 많습니다.
    프레임 속도가 낮은 경우 프레임마다 여러 번 호출 할 수 있지만, 프레임 속도가 높을 경우 프레임간에 호출 할 수 없다.
    FixedUpdate직후에 모든 물리적 특성 계산 및 업데이트가 발생.
    이동 계산을 적용 할 때 Time.deltaTime 값을 곱할 필요는 없습니다. 이것은 프레임 속도와는 독립적으로 FixedUpdate()가 신뢰할 수있는 타이머에서 호출되기 때문.

  • Update : 프레임 마다 한 번씩 호출

  • LateUpdate : Update()후 플임마다 한 번씩 호출.
    일반적인 사용은 3인칭 카메라인데, Update에서 캐릭터 이동위치 계산 후 LateUpdate에서 카메라 이동 위치를 계산할 수 있다. 캐릭터 추적 용이


#렌더링

  • OnPreCull : 카메라가 씬을 추려내기 전 호출.
    컬링(Culling)하여 카메라에 어던 오브젝트 표시할지 결정 컬링 발생하기 직전에 호출된다.

  • OnBecameVisible / OnBecameInvisible : 오브젝트가 카메라에 표시 되거나 표시 안될떄 호출.

  • OnWillRenderObject : 오브젝트가 표시되면 각 카메라에 한 번 호출된다.

  • OnPreRender : 카메라가 씬의 렌더링을 시작하기 전에 호출.

  • OnRenderObject : 모든 씬 렌더링 종료 후에 호출.

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

  • OnRenderImage : 화며ㄴ렌 렌더링이 완료되고, 이미지 처리가 가능하게 된 후 호출.

  • OnGUI : GUI 이벤트에 따라 프레임마다 여러 차례 호출됩니다.
    레이아웃 및 리페인트 이벤트가 먼저 처리된 후 레이아웃 및 키보드 / 마우스 이벤트가 각 입력 이벤트에 대해 처리.

  • OnDrawGizmos : 시작화를 위한 씬 뷰에서 기즈모를 그리는 데 사용.


#코루틴

일반적인 코루틴 업데이트는 Update 함수가 반환된 후 수행됩니다.
코루틴은 YieldInstruction이 종료할 때까지 그 실행(생성)을 중지할 수 있는 함수입니다. 코루틴의 다른 사용법은 아래와 같습니다.

  • yield : 코루틴은 다음 프레임에서 모든 Update함수가 함수가 호출된 후에 속행.

  • yield WaitForSeconds : 프레임에 대한 모든 Update함수가 호출된 후 지정된 시간 후 속행.

  • yield WaitForFixedUpdate : 모든 스크립트에서 모든 FixedUpdate 호출 후 속행.

  • yield WWW : WWW다운로드 완료 후 속행.(서버 통신 때 주로 이용)
    => WWW관련 클래스 없어진다고 하며, 에셋번들 관련 통신 작업 할 때 사용할 수 없었다.

  • yiedl StartCoroutine : 코루딘을 연결 하고 MyFunc코루틴이 먼 저 완료될 떄까지 기다림.


#오브젝트 파기 시

  • OnDestroy : 오브젝트 생존기간의 마지막 프레임, 업데이트 후 호출.

#종료 시

이 함수는 씬 안에 있는 모든 활성 오브젝트에서 호출된다.

  • OnApplicationQuit : 응용 프로그램 종료 전에 모든 게임 오브젝트에서 호출, 에디터는 재생모드 중지 시 호출된다. 웹플레이어에서는 웹 뷰가 닫힐 떄

  • OnDisable : 비활성화 시 호출.

#플로우차트

스크립트 라이프 사이클 플로우차트

#참고

유니티 도큐먼트