본캠프_TIL_78일차(게임씬 디자인 개선, 스킬 이미지 수정, 씬로드 트러블 슈팅)
- 오전
- 오전회의
- 스테이지 팝업 경고창 오브젝트 풀
- UIManager에서 UI오브젝트풀용 로드 만들어두기
- 오후
- MainGameScene디자인 개선
- 몬스터 진화부분 셀렉과 디자인 통일 v
- 위치 수정해야함v
- 업그레이드 UI수정 v
- 스킬 UI수정 v
- 몬스터 진화부분 셀렉과 디자인 통일 v
- 시간이 되면 몬스터선택슬롯 스크립트 분리.
- MainGameScene디자인 개선
MainGameScene 디자인 개선
몬스터 진화 위치 변경
업그레이드 위치와 아이콘 변경
스킬 이미지 왼쪽에서 오른쪽으로 개선했습니다.
발견한 오류
스테이지 실패 -> 나가기 -> 다시 스테이지 시작 후 실패 -> 나가기 -> 몬스터 4마리 게임시작시 씬 로드 안됨.
stagePopup의 게임로드는 문제가 아니었던것 같았습니다.
MySenecManager로 로드로 바꿔보고 코드 흐름을 보겠습니다.
다음은 losePopup의 LoadLobby()부분입니다.
private void LoadLobby()
{
MySceneManager.Instance.ChangeScene("LobbyScene");
//SceneManager.LoadScene("LobbyScene");
}
왼쪽은 MySceneManager의 로딩화면을 로드하는 두트윈입니다.
브레이크 포인트를 찍어보니 ChangeScene함수에서 Load로 넘어가지 않고 있었습니다.
중간에 Debug.Log()도 아무것도 실행되고있지 않았습니다.
하지만 여기서 [Retry]버튼을 누르자 MainSene으로 가나싶더니 다시 lobbySenec이 로드됐습니다.
[Retry]버튼을 누르면 다음 함수가 실행됩니다.
private void LoadGameScene()
{
SceneManager.LoadScene("MainScene");
}
그 후 안떴던 Debug.Log들이 뜨면서 MySceneManager의 코루틴이 실행됩니다.
그렇게 LobbyScene으로 뒤늦게 들어가집니다.
뭔가 LobbyScene로드가 멈춰졌던것처럼 보입니다.
Time.timeScale = 1f; 를 추가하여 해결했습니다.
private void LoadLobby()
{
Time.timeScale = 1f;
MySceneManager.Instance.ChangeScene("LobbyScene");
}
그럼 왜
SceneManager.LoadScene("MainScene");
이건 왜 작동이 됐던걸까요.
Time.timeScale = 1f; 도 없었는데 말이죠.
이유는 MainScene에는 stageManager가 있고 다음코드가 있었습니다.
private void OnEnable()
{
Time.timeScale = 1;
}
stageManager은 로드될때마다 활성화가 됩니다.
retry버튼을 누르면 뒤늦게 lobbySenec이 나타났던건
시간이 다시 흐르기 시작하여 뒤늦게 lobbyScene이 나타났던 것 입니다.
(진행중)
스테이지 팝업 경고창 오브젝트 풀
매니저에 오브젝트 풀을 적용할 UI정보를 입력해줍니다.
주말에 해내보겠습니다.