본문 바로가기

내일배움캠프/[P1-Team.] ChillySauceCode

[TIL 24.04.15] 첫 협업-카드뒤집기 카피캣

이미 해본 적 있는 스파르타 게임개발종합반의 강의 내용을 토대로 4인의 조원이 각자 역할을 맡아 자기 파트를 개인 브랜치에 업로드한 후, Main에 합치는 작업을 했다. 내가 맡은 파트는 에셋 수정과 BGM 작업이다.

 

목   차

     


    에셋 작업

    이 작업은 사실 제일 간단해서 가장 빨리 끝났다. Zep에 있는 조원들의 캐릭터와 Slack에 있는 프로필 사진을 3:4 비율에 맞게 수정해서 공유방에 업로드하기만 하는 되는 작업이었다. 이외의 것은 아직 논의된 것이 없거나 기본 제공된 것을 사용하기로 했기 때문에 바로 다음 작업으로 넘어갔다.


    음악 삽입하기

    BGM 삽입하는 법

    복습하는 차원에서 5주차 BGM 부분을 정리한다. 음원은 스파르타에서 제공한 것을 우선 그대로 가져다 사용했다.

    #flip 소리 삽입하기

    1. Card에 AudioSource 컴포넌트 달기
    2. Card.cs에 AudioClip이랑 AudioSource 추가하기.
      • public AudioClip clip;
      • AudioSource audioSource;
    3. Start 함수에서 AudioSource의 컴포넌트를 스크립트로 가져오기.
      • audioSource = GetComponent<AudioSource>();
    4. OpenCard 함수에 한 번만 재생되도록 코드 추가하기
      •  audioSource.PlayOnShot(clip);

    #match 소리 삽입하기

    1. GameManager에 위의 1~3 과정을 반복하기.
    2. isMatched() 함수에 딱 한번만 재생하도록 하는 PlayOnshot() 함수 삽입하기.

    #BGM 삽입하기

    1. audioManager Object 만들고 AudioManager.cs 도 만들어서 삽입해주기.
    2. 마찬가지로, 위의 1~3 과정 반복해주기.
    3. Start 함수에 audioSource.clip = this.clip; 과 audioSource.Play(); 삽입해주기.
    4. StartScene에 AudioManager을 만들어주고 마찬가지로 세팅해주기.
    5. AudioManager에 싱글톤을 만들어주기.
    6. Awake 함수에 DontDestroyOnLoad 함수를 추가한다.
    7. 만약 Instance가 이미 존재한다면, 새로운 Instance를 파괴함으로써 이 오브젝트가 하나만 존재하도록 한다.

    ※중요※ Github를 통해 공유하기

    이제 필요한 코드를 모두 작성했으니, 레포지토리에 공유해서 다른 사람들에게도 BGM이 들리도록 만들어주자. 나는 현재 Github Desktop을 사용하고 있으므로, 이것을 기준으로 Github를 다루는 법을 작성한다.

    github desktop 화면.

     

    #commit과 push: 업로드!

    내가 작성한 내용을 다른 모든 사람이 볼 수 있게 한다.

     

    commit: 앱의 왼쪽 아래에 commit의 summary를 작성하는 칸과 그에 대한 상세 내용을 적을 수 있게 되어있다. 그 후, commit으로 시작하는 파란 버튼을 누르면 브랜치에 주석과 함께 변경사항을 업로드할 수 있다.

     

    push: 최종적으로 branch에 업로드하는 것으로, 이 push를 통해 다른 사람이 비로소 내가 작성한 내용을 pull할 수 있게 된다. 사진에서 Fetch라고 써진 부분이 만약 commit이 있는 경우에는 commit의 개수와 함께 Push라는 글씨로 바뀐다.

     

    #pull과 merge: 다운로드!

     다른 사람들이 작성한 것을 내가 내려받는 데에 쓰인다. 

     

    pull: 같은 브랜치에서 작업할 때 주로 볼 수 있다. Fetch를 눌러 새로고침했을 때 만약 이 브랜치에 Pull할 내용이 있다면 자동으로 글씨가 Pull할 Commit의 개수와 함께 바뀐다.

     

    merge: 서로 다른 branch끼리 합치는 데에 쓰인다. Main의 내용을 내 branch에 불러오는 데에 쓰일 수도 있고, 반대로 내 branch의 내용을 Main에 업로드하는 데에 쓰일 수도 있다. 

     

    #branch

    branch: 버전 관리나 기능 추가, 버그 수정 시에 사용되는 것으로, Fetch 왼쪽의 버튼을 눌러서 원하는 브랜치로 바꿀 수 있다. 브랜치마다 내용이 다를 때는 Fetch를 누르면 자동으로 Unity 프로젝트 화면에 Reload가 뜨면서 새로고침할 수 있도록 도와준다.


     

    마무리

    팀원 중에 Github에 능숙한 사람이 없어서 모두가 검색에 의지해 Github 관리를 하느라 실수로 일부 파일을 날리기도 하고 Conflict 때문에 개인 로컬파일을 날린 후 새로 Main에서 다운받아 작업하는 등 모두가 혼자 할 때와는 다르게 수고스럽게 Unity 프로젝트를 만들었다. 내일은 이제 Github에 상대적으로 익숙해졌으니 더 빠르고 많은 작업을 할 수 있을 것이라 기대한다.