inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

C#과 유니티, 실전 게임으로 제대로 시작하기 (저자 직강)

2.9 속성

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

335

bskim

작성한 질문수 1

0

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

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

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

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

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

unity C#

답변 1

0

백현우

안녕하세요 bskim님!

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

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

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

감사합니다!

EXTENSIONS

0

60

1

총알발사 Vector3

0

141

1

Invoke 오류

0

177

1

4.10 델리게이트 예문이 이해되지 않습니다.

0

134

1

기존에 있던 스크립트에 워링이 새로운 스크립트에서도 콘솔에 뜹니다.

0

134

2

강의 영상 2.5 객체 중 객체와 class관련 질문입니다

0

120

1

델리게이트를 이용하여 멀티캐스트를 할 때, 같은 타입만 담을 수 있나요?

0

188

1

사용하시는 테마가 궁금합니다

0

230

1

저도 이동이 안돼요.....ㅠㅠ

0

212

1

작동이 안되네요

0

656

1

2.17강에서 피격부분이 작동하지 않습니다

0

230

1

교재 관련 질문

0

314

1

유니티 vscode 연결

0

1879

1

Vector2 Vectoe3

-1

383

1

실행시 콘솔창 출력안됨

0

2185

1

왜 이 책에서는 Time.deltaTime을 쓰지 않았는지?

0

801

1

혹시 강의 내용 정리한 것을 블로그에 포스팅 해도 될까요??

0

388

0

collision 발생 조건

0

456

0

강의 2.11 protected와 this/base 에서 객체생성 오류가 발생합니다.

0

333

0

class 작성 스크립트와 객체를 생성하는 스크립트가 다른 경우

0

293

1

질문이 있습니다! 컴파일 에러 관련입니다.

0

281

0

Peek에 대해서 질문드립니다.

0

380

1

이런식으로 코드를 짜도 될까요?

1

599

0

visual studio code

0

392

1