본문 바로가기

Programming/Unity

[Unity] MonoBehaviour

참고 링크 : https://skuld2000.tistory.com/25

Mono      Behaviour
닷넷 프레임워크를 사용하기 위해 개발된 것 Mono를 활용하여 만든 기본 클래스

 

 

 

Monobehaviour

유니티 엔진에서 호출되는 콜백 함수를 제공

: MonoBeHaviour를 상속 받았다면 해당 콜백함수들을 계속 돌리고 있다는 뜻, 사용하지 않는다면 제거하는 것이 좋다.

 

더보기

상세

FixedUpdate

특정 시간마다 호출 (균일한 간격의 작업이 필요할 때 사용 : ex) 부드러운 이동)

 

Update

매 프레임 마다 호출 (Input과 같이 매 프레임마다 체크가 필요할 때 사용)

 

Start/Awake

Start는 활성화 이후에 호출됨 

(개인적으로)비활성화 상태였다가 활성화시켜서 사용하는 프리팹의 경우 Awake에서 초기화 해주면 편하다

 

선계산 후랜더링

상세

FixedUpdate

특정 시간마다 호출 (균일한 간격의 작업이 필요할 때 사용 : ex) 부드러운 이동)

 

Update

매 프레임 마다 호출 (Input과 같이 매 프레임마다 체크가 필요할 때 사용)

 

Start/Awake

Start는 활성화 이후에 호출됨 

(개인적으로)비활성화 상태였다가 활성화시켜서 사용하는 프리팹의 경우 Awake에서 초기화 해주면 편하다

 

선계산 후랜더링

 

 

 

 

# MonoBehaviour 클래스 연결

MonoBehaviour를 상속받은 C#스크립트는 AddComponent로 유니티 엔진에 연결한다.

ps. 인스펙터에서 연결해준 gameObject들은 Awake 이전에 연결되어 있다.

 

# 실험 : new로 MonoBehaviour 상속 클래스를 생성한다면?

new 키워드로 클래스 생성 시 생성은 되는데 Update, Start등 콜백함수가 호출도 되지 않으며 인스펙터에서 연결해준 gameObject도 사용할 수 없게된다. 

MonoBehaviour 상속받은 스크립트를 생성하고 유니티 엔진에 올리지 않은 상태와 같다.

 

 

 

 

 

 

# 결론 : 

유니티 엔진과 스크립트를 연결하는 클래스

실제로 MonoBehaviour를 상속받지 않은 C#스크립트는 유니티 엔진과 연결되지 않아 gameObject에 컴포넌트로 추가할 수 없다. 

 

 

'Programming > Unity' 카테고리의 다른 글

[Unity] Vector3는 Heap에 메모리 할당??  (0) 2020.04.21
[Unity] 유니티는 단일 쓰레드  (0) 2020.03.03
[Unity] Json 라이브러리  (0) 2020.03.03