카테고리 없음

본캠프_TIL_78일차(게임씬 디자인 개선, 스킬 이미지 수정, 씬로드 트러블 슈팅)

티-히히 2025. 1. 4. 00:07
  • 오전
    • 오전회의
    • 스테이지 팝업 경고창 오브젝트 풀
      • UIManager에서 UI오브젝트풀용 로드 만들어두기
  • 오후
    • MainGameScene디자인 개선
      • 몬스터 진화부분 셀렉과 디자인 통일 v
        • 위치 수정해야함v
      • 업그레이드 UI수정 v
      • 스킬 UI수정 v
    • 시간이 되면 몬스터선택슬롯 스크립트 분리.

 

 

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정보를 입력해줍니다.

 

 

주말에 해내보겠습니다.