인프런 커뮤니티 질문&답변
강의 5:04분 GetPlayer 질문입니다!
작성
·
294
0
GameManagerEx가 있기 전에는 FindObjectWithTag로 "Player"라는 Tag를 가진 Object를 찾아 주어서 없으면 null값으로 return;을 해버리고 끝내는 방식 이였는데
이전시간에 GameManagerEx를 만들고나서
5:04초 쯤에 GameManagerEx부분에 public GameObject GetPlayer { return _player; }이렇게
GameObject를 반환하는 함수를 구현을 해주었습니다.
그런데 제 생각에는
GetPlayer는 _player를 return만 하는 함수이지
FindObjectWithTag처럼 "Player"라는 Tag를 가진 오브젝트를 찾아서 반환을 하지 않고
GameObject를 return만 해주고 있는데
어떤 이유에서 FindObjectWithTag를 GetPlayer가 대체?를 할 수 있는 것인가요??
(GameManagerEx에서는 스폰, 디스폰, GetWorldObjectType 함수만 구현이 되있는 상태입니다.)
퀴즈
Unity 게임 개발 프레임워크에서 Manager를 사용하는 주된 목적은 무엇일까요?
특정 오브젝트의 애니메이션을 제어하기 위해서
자주 사용되는 기능이나 시스템을 중앙에서 관리하기 위해서
캐릭터의 스탯 값을 저장하기 위해서
게임 씬의 배경 음악을 재생하기 위해서
답변 1
0
정답은 코드에 있습니다.
Spawn할 때 _player변수에다 기억을 하고 있기 때문이죠.
public GameObject Spawn(Define.WorldObject type, string path, Transform parent = null)
{
GameObject go = Managers.Resource.Instantiate(path, parent);
switch (type)
{
case Define.WorldObject.Monster:
_monsters.Add(go);
if (OnSpawnEvent != null)
OnSpawnEvent.Invoke(1);
break;
case Define.WorldObject.Player:
_player = go; // << 이 부분!
break;
}
return go;
}






앗 감사합니다!