• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

return Object.Instantiate(prefab,parent);에 대해 질문있습니다.

20.04.08 21:44 작성 조회수 298

0

1) prefab 파일에서 tank = Managers.Resource.Instantiate("Tank")에서 호출 당함

2) ResourcesManager 파일에서 GameObject를 사용해 prefab 오브젝트를 만들어서 그 안에 Prefabs 폴더 안에 있는 Tank 모델 경로를 가져와서 넣음.

그렇다면 return Object.Instantiate(prefab,parent);에 있는 Object는 prefab를 말하는건가요?

Object를 쓰지않으면 자기 자신을 불러오는 재귀함수가 되기때문이라는건 알겠는데 저 Object는 어디서 호출당한건지, 아니면 약속처럼 사용하는 언어인지 혼란이 와서 질문합니다.

답변 2

·

답변을 작성해보세요.

2

안녕하세요.

Object(대문자)는 C# 표준의 object(소문자)랑은 아무 관계가 없고,
유니티 엔진에서 제공하는 클래스입니다.
Object에 마우스를 갖다 대고 [F12] 키를 누르면 다음과 같이 살짝 인터페이스를 엿볼 수 있습니다.

Object는 설명에서도 나와있지만 [유니티가 참조할 수 있는 모든 객체의 조상 클래스]라고 합니다.
따라서 객체 생성/삭제 기능들도 Object 클래스 안에 정의되어 있는 것을 볼 수 있습니다.

결국 Resources.Load이나 Object.Instantiate 모두 유니티에서 제공하는 기능들인데,
Instantiate의 경우 Object 클래스 안에 있는 static 함수로 기능을 제공하고 있습니다.
이걸 더 사용하기 편리하게 비슷한 인터페이스로 ResourceManager에서 Instantiate을 직접 정의하고,
그 함수 내부에서는 유티에서 제공하는 함수를 호출하는 것입니다.

0

2403docB님의 프로필

2403docB

질문자

2020.04.08

알기 쉬운 설명 감사합니다!