현상
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/