• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

클래스로 만드는 객체와 유니티 하이어라키에서 만드는 객체(게임 오브젝트) 차이가 궁금합니다.

21.11.12 14:40 작성 조회수 217

0

제가 이해한 바로는,  클래스가 있는 이유는 클래스를 통해 객체를 만들기 위함이고, 그 객체를 클래스에 담긴 정보(필드)나 행위(메서드)를 통해 통제하는 것인데요.

첫 번째로, 클래스를 통해 객체를 왜 만드는지가 궁금합니다. 유니티 내에서 손 쉽게 객체(박스 등등)를 만들 수 있는데, 굳이 클래스를 통한 객체 생성에 이유가 있는 것인가요?

두 번째로, 클래스를 통해 객체를 만들었다면, 실제로 이 객체가 어디에 보여지는 것인가요? 유니티를 통해 게임 제작하는 것은 만든 객체를 시각화하여 동작시키는 것으로 이해가 되는데, 단순 스크립트 내에서만 객체가 생성된 느낌이라 왜 만드는지 모르겠네요.

세 번째로, 만들어진 객체를 시각화하는 작업이 GameObject 변수 정의하고, 프리팹을 드래그앤드롭하여 연결하는 것인가요? 그게 맞다면 하이어라키에서 바로 게임 오브젝트 만드는 것은 스크립트를 통해 객체 생성하는 것을 전부 건너뛰는 것인가요?

마지막으로, 그래서 하이어라키에 있는 게임 오브젝트와 클래스를 통해 만드는 객체와 같은 건가요?

답변 1

답변을 작성해보세요.

0

안녕하세요 bskim님!

클래스를 통해 객체를 만드는 것은 말씀하신대로 유니티에서 박스같은 GameObject를 만들어내는 것과는 차이가 있습니다. 예를 들어, 우리는 GameManager를 객체로 생성하여 사용하게 되는데, 이를 박스와 같은 형태로 게임 씬에 보여줄 필요는 없겠죠! 실제 씬에 배치되지 않더라도 객체를 생성하는 경우는 빈번합니다

두 번째 질문도 이와 연결되는데요! 스크립트를 통해 생성된 객체는 게임 씬에 존재하진 않지만 실제 메모리에 존재합니다. 눈에 보이지 않기 때문에 추상적일 수 있지만 컴퓨터 메모리에 실제로 존재한다고 생각해주시면 될것 같아요!

GameObject를 스크립트에서 정의하고 프리팹화 하는 것은 이 게임오브젝트를 스크립트에서 통제하고, 프리팹을 통해서 쉽게 복제할 수 있다는 점에서 다르겠지요! 하이어라키에서 바로 GameObject를 만들어 스크립트와 연결할 수 있겠지만 예를 들어,  몹이 100마리만 되어도 이야기가 달라질것 같아요 ㅎㅎ

감사합니다!