인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

김관호님의 프로필 이미지
김관호

작성한 질문수

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

@Managers 생성 질문드립니다.

해결된 질문

작성

·

407

·

수정됨

0

디버깅을 통해 @Managers가 생성되는 곳이 BaseScene에 Init이라는 것을 파악했지만, Init과 Managers.Resource.Instantiate 호출로 연관 없는 @Managers까지 생성되는 이유를 모르겠습니다.

BaseScene.cs

protected virtual void Init()

{

Object obj = GameObject.FindObjectOfType(typeof(EventSystem));

if (obj == null)

Managers.Resource.Instantiate("UI/EventSystem").name = "@EventSystem";

}

ResourceManager.cs

public GameObject Instantiate(string path, Transform parent = null)

{

GameObject original = Load<GameObject>($"Prefabs/{path}");

if (original == null)

{

Debug.Log($"Failed to load prefab : {path}");

return null;

}

if (original.GetComponent<Poolable>() != null)

return Managers.Pool.Pop(original, parent).gameObject;

GameObject go = Object.Instantiate(original, parent);

go.name = original.name;

return go;

}

답변 1

0

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

Managers.Resource 코드를 보면 Init(); return _resourceManager; 이런 식으로 되어 있을거에요.
@Managers가 없으면 생성하는 코드가 Init쪽에 들어가 있습니다.

김관호님의 프로필 이미지
김관호

작성한 질문수

질문하기