20231030_기록

2023. 10. 30. 21:05IT/TIL

오늘 한 것들

 

OT 참가

SA를 위한 커뮤니케이션

유니티 설치(버전 문제로)

카드 뒤집기 게임 만들기

KDT 훈련생 유의사항 및 제도 안내 OT 참가

 

 

오늘은 Unity 2기 개강일로 OT의 시간은 9시인데 긴장한 탓인지 6시부터 눈이떠져서 일찍 준비하고 기다렸다.

OT의 내용에서 인상깊었던 점은 코더(coder)가 아니라 개발자(developer)가 되기 위해 이 자리에 있다는 것과

그에 따라 팀 프로젝트를 하며 커뮤니케이션 능력도 길러야된다는 점을 강조해주셨던 점이다.

회사 생활에서 가장 어렵고 중요하다고 생각하는 것이 커뮤니케이션 능력이지만

이는 개인의 능력으로 해결해야된다고 여겨서 케어해주지 않는 경우가 많은데

매니저님께서 이렇게 강조해주시는 것만으로도 다른 수강생들도 이를 인지할 수 있을 것이라 생각한다.

 

회의 결과 유니티 2022.3.12f1을 공용으로 사용하는 버전으로 하기로 해서이 버전으로 카드 뒤집기 게임을 만들었으나

점심 시간 즈음에 공식으로 버전을 지정해주셔서 게임을 다시 만들어야되는 불상사가 있었다.

그래도 게임 자체가 어렵거나 노가다 코딩이 필요한 부분이 없었기에

처음에 만들 때는 강의 자료를 여러번 보면서 만들어야했으나

두번째 만들 때에는 강의 자료를 거의 보지 않고 만들 수 있었다.

 

기본적으로 강의에서 구현하는 기본판을 만든 후에 새로운 기능들을 추가하는 작업을 했는데,

오늘 내가 구현한 기능들은

배경음, 효과음 추가

카드 뒤집어지는 애니메이션 변경

매칭 시도 횟수 추가 -> 목숨 형식으로 변형해서 추가

남은 목숨에 따라서 경고음 추가

남은 목숨에 따라서 화면 색상 변경 애니메이션 추가

점수 추가

의 기능들인데

 

배경음과 효과음은 기본적으로 강의에서 추가했었으나,

배경음은 치타맨의 배경음악으로(왠지모르게 치타맨의 배경음이 카드 뒤집기 게임에 어울리는 것 같아서 택했다)

효과음은 이전에 골드메탈님의 강의를 들으며 받았던 효과음 모음 에셋에서 골라서 선택했다.

 

이후에 매칭 시도 횟수를 도입하려고 아이디어를 생각했는데,

단순히 매칭 시도 횟수를 사용하여 올라가는 숫자를 구현하면

UI의 구성에서 시간과 점수가 모두 올라가는 숫자이기에 식상한 느낌이 있을 것 같았다.

그래서 생각한 것이 난이도와 연결할 수 있는 내려가는 숫자(목숨과 비슷한 느낌)로의 구현이였다.

매칭 시도 횟수 -> 남은 뒤집을 수 있는 횟수(목숨)

로 변경하고 이를 이용해서 특정 목숨에서 경고음을 추가하고

특정 목숨 이하에서는 색상이 변경되는 애니메이션을 추가했다.

 

목숨의 구현은 초기 cnt를 도입하고 이후에 카드를 두번 뒤집은 후에 cnt를 1씩 빼주는 것으로 구현했으며

cnt를 1 빼준 후에 cnt 값을 확인하여 경고음이 나게하고 애니메이션이 나타나도록 하였다.

 

경고음이 나게 하는건 쉽게 구현하였으나 애니메이션쪽이 문제였는데

처음에는 MainCamera에 애니메이션을 넣고 MainCamera Script를 만들어서 컨트롤하려고 하였으나,

MainCamera Script에서 만든 함수를 gameManager로 가져가는 것에서 문제가 있어

MainCamera Script는 지우고 gameManager에서 MainCamera 애니메이션을 컨트롤하는 것으로 하였다.

이후에는 점수를 추가하여 짝을 맞추면 점수를 얻는 시스템으로 간단히 구현하였다.

난이도 느낌으로 목숨 수에 맞춰서 획득하는 점수의 차등을 주었다.

 

이후에 게임을 몇번 플레이하면서 QA를 하였는데,

cnt가 50으로 시작해 25가 되면 경고음이 발생하고 10이하가되면 애니메이션이 나타나는 시스템을 만들었는데

만약 cnt가 25에서 클리어하게되면 경고음이 발생하며 클리어가 되고,

10에서 클리어하게되면 애니메이션이 나타나면서 클리어가 되어서

어떻게 해결할지 고민했었는데, 처음에는

cnt == 25 && endTxt == false를 이용하여 해결하려고 하였으나 잘 안되서

(위의 문제는 추후 튜터님께 문의할 예정이다)

이전에 배웠던 Invoke 함수를 이용하여 해결하였다.

원했던 1줄로의 해결은 하지 못했으나 

배웠던 Invoke 함수를 생각해내서 해결한 것은 괜찮았던 결과로 생각한다.