유니티를 사용할 때에 스크립트를 만들면 항상 클래스 옆에 MonoBehavior가 적혀있습니다.
별거 아니겠지 하고 깊게 생각 안 하고 코딩을 했었는데, 다른 사람의 코드를 보면
MonoBehavior 대신 다른 단어가 써져있거나 없었을 때도 보았을 것입니다.
MonoBehavior의 특징
Unity에서 제공하는 모든 스크립트가 상속되어 있는 클래스입니다. 유니티에서 정말 많이 사용하는 것 중에서
대표적인 것으로는 Awake, Start, Update 등이 MonoBehavior가 있어야 사용이 가능합니다.
MonoBehavior의 상속받는 대상은 [MonoBehavior -> Behavior -> Component -> Object] 입니다.
유니티에서 스크립트를 생성하면 기본적으로 MonoBehavior가 달려 있는 이유가 바로 이 때문인데,
의미는 MonoBehavior 클래스를 상속하겠다. 입니다. 이걸 더 쉽게 풀어서 말하자면
이 클래스에서 유니티에서 제공하는 스크립트의 기능을 사용하겠다. 라는 뜻입니다.
여기서 MonoBehavior에서 사용 가능한 함수들의 종류를 볼 수 있습니다.
https://docs.unity3d.com/kr/530/ScriptReference/MonoBehaviour.html
MonoBehavior가 상속된 클래스의 특징
1. 스크립트 파일 자체로는 사용이 불가능하고, GameObject의 Component로 등록을 해야 사용을 할 수 있습니다.
(이와 마찬가지로 MonoBehavior을 상속받지 않는 클래스라면 Component로 등록이 불가능합니다.)
2. 다른 클래스에서 해당 스크립트를 사용하고 싶다면 GetComponent<>함수를 사용해야 합니다.
3. new로 동적 할당을 할 수 없습니다.
- 만약 동적할당을 하고 싶다면 ExampleSrc exSrc = 게임오브젝트.AddComonent<exsrc>();를 사용하면 됩니다.
MonoBehavior 상속된 클래스 사용 주의사항
Update, FixedUpdate 등 프레임 단위로 빠르게 반복으로 실행하는 함수는 안에 아무런 내용이 없더라도 실행되어
성능에 안 좋은 영향을 끼칩니다. 만약 사용하지 않는다면 무조건 삭제를 해주어야 성능 향상에 도움이 됩니다.
'유니티 C#' 카테고리의 다른 글
유니티 C#) 생성자와 소멸자 (0) | 2023.01.26 |
---|---|
C# ) 스택(Stack), 힙(Heap) 간단 정리 (0) | 2022.07.26 |
유니티 C#) Property(속성) 기능 - get/set 키워드를 사용 (1) | 2022.07.24 |
유니티 C#) static은 무엇인가. (0) | 2022.07.24 |
유니티 C#) Dictionary사용법과 ContainsKey 정리 (3) | 2022.07.23 |