본문 바로가기
개발 (Game)/(2021) Unity RTS 포트폴리오

[Day 10-1] Space씬 제작 및 World씬과 연결(데이터 전달)

by 진현개발일기 2021. 7. 21.

[2021. 07. 21, Wed]

 

[어제 짜놨던 오늘 할 일들]

1. 병사 병합 시스템
2. PlayerManager
   2-1 국가 선택
   2-2 내가 가지고있는 국가들의 리스트와 Occupied 수만큼 각 국가들의 세금 비율로 돈 걷기

 

▲ 이것들 먼저 할려고했었으나. Space 씬을 구상하고 플레이어가 '국가를 선택'하는 것을 먼저 구현하는 것이 좋을 것 같다는 생각이 들었다.

 

Space씬

 

씬 체인지를 하면서 Diplomacy에 등록되어있는 국가들이 없어지기 때문에 Diplomacy.cs안의 데이타들이 다 날라간다.

그래서 고민해서 결정한 방법이

 

[수정 전]

DoNotDestroy.cs

바로 싱글톤 패턴만 들어있는 스크립트를 짠 다음 내가 원하는 오브젝을 한 곳에 모아서 스크립트를 씌어줬다.

 

SceneChanger.cs

 

[수정 후]

SceneLoaded라는 이벤트 함수에 위 함수를  체인을 걸어놓는다.

 

sceneChanger.cs

 

 

그러나, 문제가 생겼다.

 

 

 

맨 처음 Space씬에서 World씬으로 넘어갈때는 멀쩡했는데 한 번 씬을 변경해주고 다시 돌아와보니 유닛들이 날라가는 것이다.  천천히 날라가는데 어디선가 물리 충돌이 일어났던 것 같았고 먼저 생각을 해봤다.

생각을 해봤는데 World씬에서 Space씬으로 넘어가고나서 SceneLoaded함수가 발동이 된다. 그러므로 건물들이랑 지구본이 부딪히고나서 activeFalse가 된다. 사실 Kinematic을 틀어놔도 상관이 없기 때문에 스크립트를 바꾸지않고 건물들을 키네마틱 리지드바디 컬라이더로 바꿨다.

 

성공했다.

 

 

[씬 어두워짐 현상]

유니티에서 씬을 넘길 때 에디터 상에서 화면이 어두워지는 현상이 종종있다. 이렇게 해결하면 된다.

어두워지는 씬에서 Generate Lighting을 해준다. 필자는 두 씬에 다 했다.
GenerateLighting을 한다면 저렇게 (LightDatas폴더 제외) Assets 폴더 안에 씬 이름으로된 폴더가 하나 생기고 내용물이 생긴다.

 

728x90