내일배움캠프 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개의 댓글

관련 채용 정보