Unity 내배캠 TIL

카드 뒤집기 게임 - 팀 프로젝트 협업하기(1주차 2일)

오늘도즐겨 2024. 9. 10. 20:49

사전 캠프동안 학습한 내용을 바탕으로 팀 프로젝트를 진행한다.

기존의 배운 코드를 활용했고, 추가기능을 많이 추가하여 진행하기로 하였다.

우리 팀 팀장님이 디자인 전공으로 UI를 자유자재로 다룰 수 있었고,

기존 몇몇 프로젝트를 진행 해본 팀원들도 있어서 오류는 많을지 라도 함께 헤쳐나갈 수 있을 거라 생각했다.

 

진행하면서 어려웠던 점은 다양한 오류들이 가득했던 하루였던 것 같다.

협업을 하다 보니 완성작이 아니고, 각자 작업물을 만들고, Push-Merge-Pull무한 반복 중 생긴 오류들!

UNITY 프로그램 내에서 툴을 잘 다룰 줄 몰라서 생긴 오류들!

 

ex_1) 캔버스의 사이즈가 UI버튼의 사이즈보다 너무 커서,

         16개의 Card Prefab의 버튼 중 1개만 작동하거나 아예 작동하지 않는 오류.

          해결 : 튜터님을 찾아가 여쭤보고, World Space 일 경우 Scale값 0.1/0.1/0.1 사이즈 조정과

                    Width값 Height값 수정! 

          추가 : Render Mode의 3가지 활용방법을 배웠다.

Screen Space - overlay :

이 모드에서는 캔버스가 화면에 맞게 크기가 조정된 다음 장면이나 카메라를 참조하지 않고 직접 렌더링 됩니다(장면에 카메라가 전혀 없더라도 UI가 렌더링 됩니다). 화면의 크기나 해상도가 변경되면 UI가 자동으로 크기에 맞게 조정됩니다. UI는 카메라 뷰와 같은 다른 그래픽 위에 그려집니다.

화면 공간 - 오버레이 캔버스는 계층 구조의 최상위에 저장해야 합니다. 이것을 사용하지 않으면 UI가 뷰에서 사라질 수 있습니다. 이는 기본 제한 사항입니다. 화면 공간 - 오버레이 캔버스를 계층 구조의 최상위에 유지하면 예상 결과를 얻을 수 있습니다.

Screen Space - camera :

이 모드에서 캔버스는 주어진 카메라 앞의 어느 정도 거리에 있는 평면 객체에 그려진 것처럼 렌더링 됩니다. UI의 화면 크기는 항상 카메라 프러스텀에 정확히 맞도록 재조정되므로 거리에 따라 달라지지 않습니다. 화면 크기나 해상도 또는 카메라 프러스텀이 변경되면 UI가 자동으로 재조정되어 맞춰집니다. 3D 객체 UI 평면보다 카메라에 가까운 장면의 객체는 UI 앞에 렌더링 되고, 평면 뒤에 있는 객체는 가려집니다.

World Space  :

이 모드는 UI를 마치 장면의 평면 객체인 것처럼 렌더링 합니다. 그러나 Screen Space - Camera 모드와 달리 평면은 카메라를 향할 필요가 없으며 원하는 대로 방향을 지정할 수 있습니다. Canvas의 크기는 Rect Transform을 사용하여 설정할 수 있지만 화면 크기는 카메라의 시야각과 거리에 따라 달라집니다. 다른 장면 객체는 Canvas 뒤, 캔버스를 통과하거나 앞을 지나갈 수 있습니다.

ex_2)  TEXT.sc / Script에 작성 시 Score.text = time.ToString("N2"); 빨간 밑줄이 생기는 오류         

          해결  : 기존 유니티에 UI TEXT라는 기능이 포함되어 있기에

                    Script명을 Text로 지어줬던 것을 삭제해주어야 한다.

          추가  : 유니티에 기본적으로 Script Name 또는 변수로 활용할 수 없는 단어들에 유의!

 

ex_3) Update문에 계속적으로 오디오가 재생되는 오류로 소리가 들리지 않는 오류

          해결 : Update문은 계속적으로 갱신되나 If문을 사용해서,

                   조건을 생성해 줌으로써 조건이 충족되었을 때만,  실행!

if (isHurry == false && time_Tmp <= 10f ) // Time 10초미만일때 조급한 브금
{
    isHurry = true; // 스위치가 켜짐
    AudioManager.Instance.audioSource.clip = AudioManager.Instance.HurryUpMusic;
    //AudioManager.Instance.audioSource.Stop();
    AudioManager.Instance.audioSource.Play();
}

                   

ex_4) 깃헙 Dev 동기화오류

          협업 중 누군가가 Current Branch가 본인의 브랜치가 아니고,

          공용 브랜치에서 동시에 누군가가 작업을 수행할 경우 한 명이 수정하면

          다른 한 명의 유니티 화면이 로딩 및 재 컴파일링이 되어버린다.

          내가 Sprite의 Pixer Per Unit을 통해 100=> 250으로 변경해둔 이미지를

          누군가 3으로 변경하여 어머어마하게 큰 Sprite 이미지로 변경되어 버렸다.

 

          해결  : 4명의 팀원이 모두 모여 화면공유를 하며 2명이 변경해보았는데,

                    1명의 팀원이 아무것도 건들지 않았는데, 250으로 자동으로 변경되었다.

          추가  : 앞으로 누구든 Current Branch 본인의 브랜치(로컬)에서만 작업을 하고

                   Dev (공용브랜치)에서 작업 시 작업 중을 알리기로 함.