현상
GameObject의 AddComponent를 호출 했는데, 맥에서는 아무런 문제 없이 동작했지만 윈도우에서 실행시 null을 리턴 한다.
원인
MonoBehaviour 를 상속 받은 아주 작은 역할을 하는 클래스를(이하 A 클래스) 새로운 파일을 만들지 않고 기존 클래스의(이하 B 클래스) 내부에 작성하였는데 이런 경우 윈도우에서는 AddComponent 시 null을 리턴한다.
해결
A 클래스와 이름이 같은 신규 파일을 생성
사족
유니티에서 MonoBehaviour를 상속받은 클래스는 new 로 생성할 수 없고 GameObject에 AddComponent를 통해서만 생성 할 수 있다.
부록 1. 같이 읽으면 좋은 글
- Unity를 사용하기 전에 알아두면 좋은 기본 개념들
- http://forum.unity3d.com/threads/gameobject-addcomponent-is-returning-null.68201/
Unity를 사용하기 전에 알아두면 좋은 기본 개념들
Unity가 편한 개발 엔진이라고 아무런 기본 지식 없이 마냥 닥치는대로 하려다보니 이래저래 어려움이 많다. 이 포스팅에서는 Unity를 사용하면서 개인적으로 계속 헷깔렸던 부분들을 정리 한다. T
kukuta.tistory.com