-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
해결됨
game manager 서두에
21.04.28 05:45 작성 조회수 28
0
삭제된 글입니다
답변을 작성해보세요.
1
백현우
지식공유자2021.04.28
메서드가 static이 아니라면 '클래스이름.메서드()'와 같은 방식으로 클래스의 메서드에 접근할 수 없습니다! 보내주신 코드에서 spawnManager라는 변수에 담은 것은 SpawnManager 클래스가 아니라 SpawnManager 클래스에 의해 생성된 객체입니다.
즉, static이 아닌 메서드는 클래스의 객체를 생성해서 접근해야 하며, 그 때문에 spawnManager라는 변수에 객체를 담아 메서드에 접근하는 것입니다! 감사합니다 :)
신진
질문자2021.04.29
객체를생성한다고 하셨는데
SpawnManager spawnManager = new spawnManager();
의 형식으로 인스턴스화하지 않은 이유가 궁금해요
백현우
지식공유자2021.04.29
네 너무 좋은 질문 주셨네요! 2.16강 후반부에서 설명드렸듯이 유니티에서 객체를 생성하는 방법은 2가지가 있습니다.
첫 번째는 생성자를 이용하는 것(SpawnManager spawnManager = new spawnManager();)
두 번째는 게임 오브젝트에 스크립트를 부착하는 것 (에디터에서 SpawnManager 게임 오브젝트에 SpawnManager 스크립트를 부착)
위 예제에서는 스크립트를 게임오브젝트에 부착함으로써 객체를 생성한 것이니 생성자를 이용해서 또 객체를 생성할 필요가 없겠죠! 추가적으로, MonoBehaviour를 상속받은 클래스는 생성자를 이용해서 객체를 생성하지 않고, 스크립트를 게임오브젝트에 부착함으로써 객체를 생성합니다.
감사합니다 ^^
답변 1