오늘 한 일
- 프로젝트 마무리하기 (버그 리포팅 등) 오늘 쓰게될 내용
- 와이어 프레임 추가 작성하기
- 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 등 다른 상호작용에는 영향을 주지 않는다.
(렌더링 상태를 제어한다)
-> 클릭 방해를 막으려면 Collider나 Raycast Target 등을 조정해야 한다.
Interactable 활용
- 버튼의 기능을 비활성화시키면 가능하지 않을까?
public Button cardButton; // 컴포넌트에 오브젝트를 할당하는 걸 잊지 말자 void OpenCard() { ... cardButton.Interactable = false; // 버튼 기능 비활성화 ... } void CloseCardInvoke() { Invoke("ButtonActive", 0.2f); } void ButtonActive() { cardButton.Interactable = true; // 다시 돌려놓기 }
하지만 이것도 실패
- 사유 : 버튼 클릭이 비활성화된 것이지 가려지는 걸 막지는 못한다;
결국 당장의 해결 방법
- 그냥 다른 공간 침범 안하는 SmallJump를 활용해주자;
오늘은 어떠한 기능을 구현하기보다는 기능을 깃허브에 push하고 자잘한 버그를 수정하고 내일 있을 발표를 준비하느라 코드에 관해 작성할만한 내용이 있지 않다. 하지만 와이어 프레임을 작성하거나 ppt를 짜봄으로써 그 툴들을 이용해 어떻게하면 내 게임의 계획을 짤 수 있을지 세세한 계획을 짜는데 도움이 되어서 개발에 있어서 코드 자체를 공부하는 것도 좋지만, 코드 외적이지만 개발에 도움이 되는 요소들도 중요하다는 점을 알게 되었다.