Mono Behaviour

2015. 7. 18. 20:34프로그래밍/3D

728x90
728x90

서론

Unity의 모든 스크립트가 상속하는 이놈에 대해 파보자!


Mono란?

정의

Mono는 .Net 프레임워크(framework)의 오픈 소스 개발 플랫폼으로서, 크로스-플랫폼(cross-platform) 어플리케이션의 개발을 지원한다. C#과 CLI(Common Language Infrastructure)에 기반을 두고 있다.


유니티의 Mono
유니티(Unity) 스크립팅 시스템(scripting system)의 기반이다.
.Net에 기반하지만 다른 여러 프로그래밍 언어들을 지원하는 .NET과 달리 C#, Boo, Javascript만을 지원한다.

Scripting Language?
스크립팅 언어(scripting language) 또는 스크립트 언어(script language), 또는 확장 언어(extension language)는 하나 이상의 어플리케이션에서 스크립트(script)를 지원하는 프로그래밍의 부분 집합(subset)이다.

Script?
스크립트(Scripts)는 흔히 어플리케이션의 코어 코드(core code)와는 별개의 언어로서 최종 사용자에 의해 작성되거나 최소한으로 수정되는(least modified) 프로그램이다. 스크립트는 대개 소스 코드(source code)나 바이트 코드(bytecode)로부터 해석되며, 이는 어플리케이션이 기계어(native machine code)나 중간 언어(intermediate)로 컴파일(compiled)되는 것과 구분된다.

MonoBehaviour
정의
Unirty의 모든 스크립트가 상속받는 클래스. 미리 만들어 둔 클래스이자 여러 스크립트 명령들의 집합이다.

목적
사용자가 Unity 엔진의 작동 방식을 이해하지 못하더라도 코드를 작성할 수 있도록 이미 만들어진(built-in) Behaviour 클래스, 즉, 사용자가 쉽게 호출할 수 있는 스크립트 명령(scripting instruction)들의 집합을 제공하는 것.

콜백
스크립트는 게임 내내 Unity 엔진에 의해 호출(invoke)되는 callback 함수들을 갖게 된다.

상속구조

MonoBehaviour 주요 메소드

Reset

Reset은 스크립트의 프로퍼티(property)를 초기화하기 위해 호출되며, 스크립트가 오브젝트(object)에 최초로 부착(attached)되었을 때와 Reset 커맨드(command)가 사용된 경우에 호출된다.


Awake
씬(scene)이 시작하면 호출된다. 씬 내부의 각 객체(object)당 한 번 호출된다.
활성화/비활성화와 관계 없이 스크립트의 인스턴스 내에서 단 한 번 호출된다.
언제나 모든 Start 함수 이전에 호출되며, prefab이 인스턴스된 직후에 호출된다.
씬이 시작할 때 GameObject가 비활성화 상태이면 Awake는 호출되지 않는다. 즉, GameObject가 활성화되어 있을 때나 부착한 스크립트가 별도로 호출되어야만 해당 스크립트의 Awake가 호출된다.

OnEnable
객체(Object)가 활성화되어 있을 때만 호출되며, Object가 활성화된 직후, 즉, MonoBehaviour의 인스턴스 직후 호출된다.
Coroutine으로 호출될 수 없다.

Start
스크립트의 인스턴스에 걸쳐 단 한 번만 호출된다.
스크립트가 활성화되어 있을 때에만 호출된다.

Update
MonoBehaviour가 활성화된 경우 매 프레임(every frame)마다 호출된다.

FixedUpdate
MonoBehaviour가 활성화된 경우 매 고정 프레임레이트 프레임(every fixed framerate frame)마다 호출된다.
Rigidbody를 다루는 경우 Update 대신 쓰인다.

LastUpdate
Update 이후에 호출되며, 호출 순서 상 다른 Update에 비해 나중에 호출되어야 할 작업들이 추가된다.

OnGUI
GUI 이벤트에 따라 호출되는 함수.
GUI 이벤트가 발생할 때마다 호출되기 때문에 1 프레임 당 여러 번 호출될 수 있다.

Manager
매니저란?
현재 씬의 게임 오브젝트들을 관리하는 관리자.

랜더링 루프





728x90
반응형