Unity 내일배움캠프 TIL 0913 | Paddle 스킨 선택 | Time.timeScale

cheeseonrose·2023년 9월 13일
0

Unity 내일배움캠프

목록 보기
33/89
post-thumbnail

제출 전 마지막 날...두둥
오늘 안에 완성시키고 발표 준비까지 할 수 있을까 !!!

해야지 뭐 응 그래요

팀 프로젝트

Paddle 스킨 선택

  • 이 부분은 원래 시간 없으면 건너뛰려고 했던 기능인데 팀원 분이 디자인하신 패들이랑 공 스킨이 너무 맘에 들어서...추가하기로 했다.
    예쁜 디자인 절대 놓칠 수 없지.

  • 우선 스테이지 선택 창에서 버튼을 누르면 스킨을 선택하는 창이 나오도록 UI를 추가했다.

  • 그리고 어제 만들었던 UI 캔버스들처럼 프리팹으로 만들어주고 아래 스크립트를 최상단 캔버스에 추가했다.

[SerializeField] private Button _selectPaddleSkinBtn;
[SerializeField] private GameObject _backgroundPanel;
[SerializeField] private Button _closeBtn;
[SerializeField] private Button _defaultPaddleBtn;
[SerializeField] private Button _cheesePaddleBtn;

private void Awake()
{
	SetBtn();
}

public void SetBtn()
{
	// Stage End Panel의 Home, Retry, Next Stage 버튼에 Click Listener를 달아줌
    _selectPaddleSkinBtn.onClick.AddListener(() => { SetBackgroundPanel(true); });
    _closeBtn.onClick.AddListener(() => { SetBackgroundPanel(false); });
    _defaultPaddleBtn.onClick.AddListener(() => { SavePaddleInfo(PaddleType.DEFAULT); });
    _cheesePaddleBtn.onClick.AddListener(() => { SavePaddleInfo(PaddleType.CHEESE); });
}

public void SetBackgroundPanel(bool isActive)
{
	_backgroundPanel.SetActive(isActive);
}

public void SavePaddleInfo(PaddleType paddleInfo)
{
	StageManager.Instance.SavePaddleInfo(paddleInfo);
	SetBackgroundPanel(false);
}



버그 수정

  • 최종적으로 완성된 Scene들을 연결하는 과정에서 버그가 생겼다.
    최종 스테이지 클리어시 EndScene으로 넘어가서 애니메이션이 재생되어야 하는데, 배경음악만 나오고 씬은 움직이지 않는 것
  • 팀원들이랑 낑낑대며 해결하던 도중 잠깐 우리 조에 놀러온 다른 조원 분께서 해결책을 툭 던져주셨다 !
    Time.timeScale 값을 바꿔줘야 한다는 것...
    진짜 상상도 못한 정체 ㄴ(ㅇㅅㅇ)ㄱ
    생각해보니 Stage 클래스 안에서의 로직만 생각하고 Stage를 Init 해줄 때만 Time.timeScale = 1f 를 해줬는데, 게임 종료 이후를 생각하지 못한 것이다.
  • 해결 방법
    • EndScene에서 처음 나오는 오브젝트의 Awake 함수에서 timeScale 값을 바꿔주었더니 정상적으로 작동!!!
  • Time.timeScale을 잘 확인하자

    잘 좀
    확인
    젭알



개쩌는 야근 중이라 오늘 TIL은 여기까지 ..

끗.

0개의 댓글