내일배움캠프 4일차 TIL - 버그로 배우기

백흰범·2024년 4월 18일
0
post-thumbnail

오늘 한 일

  • 프로젝트 마무리하기 (버그 리포팅 등) 오늘 쓰게될 내용
  • 와이어 프레임 추가 작성하기
  • PPT 만들기

버그 리포팅

간단한 버그들

  • Start Scene에서부터 게임을 시작해서 MainScene으로 들어가면 매칭 사운드, 실패 사운드가 잘 안 들리고 SelectScene이나, MainScene에서 시작하면 배경음은 작은데 효과음이 잘 들리는 현상
    -> 보니까 Audio 컴포넌트의 소리 설정의 문제였다.

  • BestTime의 시간 기록이 이상함.
    -> 시간 감소하는 코드에 조건문 하나를 추가 부여 (timerOn && CardCount > 0)
    [ 카드가 0으로 떨어지면 타이머 작동을 멈춘다. 시간이 이상하게 배정되는 걸 막았다. ]

애니메이팅 문제에 대한 해결 시도

  • BigJump 애니메이션의 문제점
    위로 갔다가 뒤집어지기 때문에 위에 있는 카드의 클릭을 방해한다.

렌더러에서 sortingOrder 순서를 바꾸면 되지 않을까?

	sortingChange 활용
    // 카드 애니메이션 때문에 뒤집어지는 거 막히는 거 방지
    SpriteRenderer sortChange

	void Start()
    {
    	...
        sortChange = GetComponent<SpriteRenderer>();    // 렌더러 가져와
	}

	void OpenCard()
    {
    	...
        sortChange.sortingOrder = -1; // 렌더러 뒤로 밀기
        ...
	}

	void CloseCardInvoke()	// 닫는 카드 함수
    {
    	...
        Invoke("SortingOrder", 0.2f);   // 지연 시간 넣어주기
	}

    // Invoke 때문에 함수로 빼놓았다.
    void SortingOrder()
    {
        sortChange.sortingOrder = 0;  // 원래 상태로 복귀
    }

Q. 그래서 해결되었나요?

-> 코파일럿이 말하기로는 Renderer는 시각적인 효과를 위한 기능이지 Button의 Onclick()이랑은 아무런 관계가 없다.

실제로도 한번 실험해봤는데 아래로 빠른 클릭은 정상 작동이지만 위로 빠른 클릭은 뭔가 영 시원치 않다;

하지만 다른 쓰임새를 알게 되었다!

  • 원하는 효과를 앞으로 내세우거나 필요없는 애를 뒤로 밀어줄 수 있다.
  • +enabled 속성 (true면 시각적으로 보여주고 false면 보이지 않게 한다.)
    -> renderer 컴포넌트 자체는 Click Event나 collider 등 다른 상호작용에는 영향을 주지 않는다.
    (렌더링 상태를 제어한다)
    -> 클릭 방해를 막으려면 ColliderRaycast Target 등을 조정해야 한다.

Interactable 활용

  • 버튼의 기능을 비활성화시키면 가능하지 않을까?
	public Button cardButton;	// 컴포넌트에 오브젝트를 할당하는 걸 잊지 말자

	void OpenCard()
    {
    	...
		cardButton.Interactable = false;	// 버튼 기능 비활성화
        ...
	}

	void CloseCardInvoke()
    {
    	Invoke("ButtonActive", 0.2f);
    }

	void ButtonActive()
    {
    	cardButton.Interactable = true;	// 다시 돌려놓기
    }

하지만 이것도 실패

  • 사유 : 버튼 클릭이 비활성화된 것이지 가려지는 걸 막지는 못한다;

결국 당장의 해결 방법

  • 그냥 다른 공간 침범 안하는 SmallJump를 활용해주자;



오늘 공부하면서 느낀점

오늘은 어떠한 기능을 구현하기보다는 기능을 깃허브에 push하고 자잘한 버그를 수정하고 내일 있을 발표를 준비하느라 코드에 관해 작성할만한 내용이 있지 않다. 하지만 와이어 프레임을 작성하거나 ppt를 짜봄으로써 그 툴들을 이용해 어떻게하면 내 게임의 계획을 짤 수 있을지 세세한 계획을 짜는데 도움이 되어서 개발에 있어서 코드 자체를 공부하는 것도 좋지만, 코드 외적이지만 개발에 도움이 되는 요소들도 중요하다는 점을 알게 되었다.

profile
게임 개발 꿈나무

0개의 댓글