내일배움캠프 3일차 TIL + 깃허브 페이지 만들기 + 팀원 이미지 맞추기 게임
오늘 진행한 내용
유니티 프로젝트1 팀원 찾기: 카드 뒤집기 게임
버그 수정
update
함수에 무한루프while
문을 넣으면 첫 프레임도 만들어지지 않는다. 첫 프레임이 만들어지지 않으면 유니티가 시작도 안 되고 로딩만 하는 현상이 발생할 수 있다.update
문에서while
같은 루프문을 쓸 때 주의해야 한다.
챌린지 추가 구현
카드 파도타듯 등장하는 효과
- 카드를
2π
만큼 오른쪽에서 생성시키고,sin
함수를 사용해 카드가 원래 자리로 돌아가는 방식으로 구현하려 했으나, 애니메이션으로 변경하기로 결정하여 취소.
카드 개수 변화 시 카드 크기 조절
- 카드 개수 변화 시 정사각형 모양이 유지되게 변경.
- 애니메이터 때문에 카드 크기 조절이 안 되는 현상이 발생. 애니메이션 중 크기 조절에 관여하는 애니메이션이 없는데도 이 현상이 지속되었기에, 부모 오브젝트인
Board
의 크기를 대신 수정.
merge 진행
- 팀원 한 명씩 main에 업로드하고, 다른 팀원들이 그걸 받아서 각자 conflict를 수정하며 진행. 먼저 한 팀원의 것을 먼저 올리고, 반복해서 다음 팀원의 것을 진행.
- 초기에는 깃 merge에 필요한 내용을 잘 모른 채로 진행하여 겹치는 스크립트를 수정해 많은 conflict가 발생함.
- 다행히 모든 conflict를 해결하고 무사히 merge 완료.
남은 과제
- 사진을 모아서 게임에 필요한 사진들을 설정해야 함.
- 난이도 클리어 시 해금 시스템 추가 예정.
깃 공부
기본 개념
history
에서amend
로 commit을 수정할 수 있다.history
에서undo
로 commit을 취소할 수 있다.history
에서revert
는 취소했음을 기록으로 남긴다.history
에서 commit 내용을 우클릭해checkout commit
으로 옛날 상황으로 되돌릴 수 있다.history
내용을 우클릭해 해당 시점을 기준으로 새 branch를 만들 수 있다.- commit할 때
changes
에서 우클릭으로 각 변화를discard
기능으로 버릴 수 있어, 변화를 한 번에 쉽게 지울 수 있다. stash
는 지우기는 싫고 저장해두고 싶을 때 사용. changes에서 사라지고 stash된다. 이를 복구할 수도 있고 그대로 버릴 수도 있다.- merge할 때는 부모 branch를 merge해오고, 테스트 후 문제가 없으면 부모 branch로 merge한다.
깃 충돌
같은 줄을 수정하면 충돌 가능
- 충돌 나면 고쳐줘야 하고 이를 피하려면 최대한 서로 같은 스크립트를 수정하지 않게 역할 분담하는 것이 좋다.
- 다른 사람의 스크립트를 수정할 경우 미리 말해서 합의를 봐야 한다.
Scene에서 물체 변화 충돌
- Scene을 서로 다르게 수정하면 충돌이 나는데, 이는 코드처럼 합의를 봐서 고칠 수 없고, 둘 중 한 명의 변화를 포기해야 한다.
- Scene은 한 명이 담당하는 것이 좋다.
- Scene을 만들 때 Script로 동적 생성하면 Scene 파일을 수정할 일이 없고, 코드만 수정하면 된다.
깃 플로우
main
branch에서develop
branch를 만든다.- 이
develop
에서feature
branch를 만들어 각자 branch를 파서 기능을 만든다. - 만든 기능들을
develop
에 merge한다. develop
외에release
branch를 만들어둔다.develop
가 충분히 만들어져 출시할만하면release
에 merge한다.main
에서 따로hotfix
branch를 만들어 급한 수정을 한다.main
은 큰 버전 변화가 있을 때 드물게 merge하여 업데이트 한다.
깃 컨벤션
- 깃을 수정할 때 어떻게 표현할지 정한 약속.
- 예를 들어 bug 수정한 경우 commit할 때 설명란 앞에
bug
라고 쓰고, audio를 수정하면audio
라고 써주는 등.
마무리
깃 사용법을 배워서 정말 바빴다. 배우는 과정도 상당히 걸렸지만, 배운 후 우리가 진행한 방식이 conflict가 일어나기 너무 좋은 방식이었다. 앞으로 이런 일이 다시 생기지 않게 하겠지만, 당장은 진행한 대로 수정해야 했다. 각 팀원별로 많은 conflict가 있었지만, 겨우 모두 수정을 완료해 거의 완성된 게임을 main에 올리니 아주 뿌듯했다.