본문 바로가기

게임개발

[유니티] 부모,자식의 위치가 중요한 이유.

며칠동안 고민한 끝에 드디어 어느정도 이유를 알아차렸다.

 

현재 제작중인 게임이다.

 

 

목표)GameOverWindow 라는 게임종료창을 피가 0이하일경우 뜨도록했고, 아닐경우 숨기도록 하기.

 

 

 

 

 

하지만 게임종료창이 아예 안사라지는 경우도있었고, 사라졌어도 재시작을 눌러 게임을 불러올경우 다시 게임종료창이 숨겨지지 않는 경우도 있었다.  게임제작을 하다보면 사소한 것 하나하나가 버그로 이어질 수 있기 때문에 많이 원인을 찾았다.(내가 초보자이기 때문에 찾는데 오래걸린것도 맞다.

우성 결론부터 말하자면,     GameOverWindow 창을    체력바의 스크립트가 있는 오브젝트아래에 추가하니 버그가 말끔히 해결되었다.  DogPolyart 에 있는 체력관련 스크립트와  GameOverWindow 가 서로 연결이 안돼서 오류가 발생한 것 같다.(내 추측이다.) 

원래는 Canvas 를 만들어 아에 밖에 따로 빼놨었는데 오브젝트 자식으로 넣으니 해결이 되었다.

이는 오브젝트간의 부모, 자식의 위치도 상당히 중요하단것을 알 수 있다.

 

 

 

깨달은점)사진에 보면  아래에 Canvas가 하나 또 있는 것을 알 수 있다. score와 MonsterCount를 담당하는 캔버스였는데,

아까 이 둘과 GameOverWindow 와 같은 캔버스에 넣어 Dogpolyart에 넣었는데 또 이상한 버그가 발생헀다.

보이는 것으로는, 1.몬스터 카운트가 초기화 되지 않았다. 2.몬스터들이 초기화 되지 않았다. 3. 몇번 재시작을 반복하니 갑자기 몬스터들이 끊임없이 소환이 되었다.  (이유는 모름)