인프런 커뮤니티 질문&답변

starkshn님의 프로필 이미지

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

Data Manager #1

Managers 기초적인 부분 질문

21.11.18 22:01 작성

·

283

1

Managers파일에서

현재 이런식으로 코드가 짜져 있을 때 외부에서 

Data의 함수에 접근을 할 때 Managers.Data.어떠한함수(); 이런식으로 Managers를 통해서만 접근이 가능하게 만들어 놓았는데 저렇게만 접근할 수 있도록 해두었는데... 질문 드리고 싶은게 어떤것이냐면은 

1.현재 static  Managers s_instance;로 한정자를 두어 오로지 Managers. s_instance 로만 접근이 가능하도록 만들어 두었습니다.(..맞나용..?)

2. 그리고 static Managers Instance { get { init(); return s_instance; } } 이코드의 말뜻이 return 으로 s_instance를 가르키니까 init()함수를 실행하고나서 Instance라는 프로퍼티는 결국 s_instance를 가르키는 말이 되는것인가요??

 

3.  init함수를 살펴보면 결국에 Managers라는 컴포넌트를 찾아서 go에 할당해주고 go를 s_instance에 할당을 해주는데

코드 시작할때 init()함수를 먼저 실행하니까 s_instance가 결국에는 Managers파일(컴포넌트)를 가르키게 되는것인가요?

 

4. 1~3 종합을 하면 

코드 시작할때 init함수 실행 -> s_instace가 Managers를 가르킴 -> static Managers Instance { get { init(); return s_instance; } }의 말뜻은 결국 s_instance를 가르킴 ->  따라서 public static DataManager Data { get { return Instance._data;  } } Data와같은 프로퍼티도 결국 _data(DataManager의 새로운 객체)를 가르킴 -> 그러므로  Managers.Data.(_data안에있는 함수)

이렇게 접근을 하여 사용이 가능한 것인가요??

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

2021. 11. 19. 14:20

네 이해하신게 맞습니다.

starkshn님의 프로필 이미지

작성한 질문수

질문하기