매번 아무 생각없이 사용하던 GameObject와 gameObject의 차이점에 대해 생각해보게 되었다.
확실하게 알고 넘어가자.
GameObject의 특성
- GameObject는 클래스이다. 객체가 아니다.
- Hierarchy 창에 계층구조를 이루는 게임 오브젝트 객체들을 의미한다.
- 유니티에서 기본적으로 제공되는 객체는 GameObject가 기본이다.
- 게임오브젝트는 게임을 구성하는 모든 요소(눈에 보이지 않는 카메라, 빛 포함)를 뜻한다.
- 스크립트에서 GameObject를 쓰는 이유는 다른 게임오브젝트를 호출하기 위함이다.
gameObject의 특성
- gameObject는 클래스가 아니다. 객체이다.
C# 스크립트 생성후 유니티 Hierarchy내 임의의 게임오브젝트로 스크립트를 Add Component하는데,
이 과정은 일반적인 객체 생성 과정인 GameObject gameObject = new GameObject();
명령어를 자동 선언한 것이나 마찬가지이므로 선언하지 않아도 gameObject는 스크립트로 바로 참조가 가능하다.
쉽게 말하면, 해당 컴포넌트에 할당된 자기 자신이다.
만약 Player라는 게임오브젝트 내 스크립트에 gameObject를 썼다면 Player의 컴포넌트를 조작하는데 사용될 것이다.
- 스크립트에서 gameObject를 사용하면, 해당 게임 오브젝트를 호출한다.
좀 더 디테일한 차이점이 있을 것 같지만, 일단 간략하고 대표적인 차이점은
어떤 GameObject에 Attached된 스크립트 안의
gameObject는 항상 '해당 GameObject 자신'이고,
GameObject는 '해당 GameObject 자신'일지 아닐지 모른다.
좀 더 정리가 필요하다.. 아직 명확하지 않다. 뭔가 헷갈린다.
'개발 > Unity & C#' 카테고리의 다른 글
[유니티] 게임오브젝트를 회전하는 여러가지 방법에 대해... (0) | 2018.04.27 |
---|---|
[유니티] Awake()와 OnEnable() Start() Update() (0) | 2018.04.20 |
[유니티] 게임오브젝 널(null) 체크해서 에러나지 않게 하는 방법! (0) | 2018.04.19 |
[유니티] 스크립트에서 머터리얼(Material) 한 개 또는 여러개 호출하는 방법... (0) | 2018.04.19 |
[유니티] Animator를 이용하여 Animation Play할 때 한 번만 실행되는 경우 해결 방법! (2) | 2018.04.17 |