게임 개발_HISTORY
내배캠_TIL250924 [팀 프로젝트 (계획), Github Desktop] 본문
내배캠_TIL250924 [팀 프로젝트 (계획), Github Desktop]
EVANJ 2025. 9. 24. 08:59⏰ 일정
- 9:00~10:00 1, 2 챕터 강의 내용을 구현 후 Github
📝 학습 요약
- Github Desktop을 사용하며 실질적인 문제 해결
- 카드 뒤집기 프로젝트 강의 1, 2 챕터 기능 팀 프로젝트에서 구현하기
🔍 학습 및 작업 포인트
🔹 GitHub Desktop을 이용할 때 겪었던 문제 해 및 주의점
- Hierachy 안 각각의 Scene에서 작업 할때 작업물을 날리지 않으려면 Unity Save를 자주 해야하며
Pull으로 최신화 시키기 전 나의 작업 내역을 해당 브랜치에 커밋해야 한다. - 안전한 작업 순서로 다음과 같다.
1. 작업 시작 전: Fetch/Pull → 최신화
2. 작업: Hierarchy 변경 후 Ctrl+S (씬/프리팹 저장)
3. 작게, 자주 커밋 (씬/프리팹, 관련 스크립트, .meta 포함)
4. Pull 전: 반드시 커밋 또는 Stash
5. Pull → 충돌 시 Smart Merge로 해결 → 테스트 → Push
🔹 '카드 뒤집기' 프로젝트 개발 실습
기존 5강 '카드 뒤집기' 게임 구조를 팀 프로젝트로 불러와 미니프로젝트에 적용하기로 했다.
팀원 6명이 강의 단원 별로 기능들을 구현하는 업무들을 배분하여 진행했다.

✔️ S.A(Starting Assignment)
프로젝트를 시작하기 전 팀원 정보, 와이어프레임(WireFrame), 개발에 필요한 기능, API 명세 등을 기입한 문서로 프로젝트의 전체적인 방향에 대해 간략하게 정리한 문서.
✔️ 와이어프레임(WireFrame)
웹(Web) 또는 앱(App) 프로젝트를 진행할 때 웹 페이지의 구조를 제안하기 위한 화면 설계도. 디자인이 들어가기 전 단계에서, 선(wire)을 이용해 윤곽선(frame)을 잡는 것
팀원들과 공동 작업을 진행할 때에는 프로젝트의 방향성 유지와 구성원들간의 공유를 위해
S.A 작성과 와이어프레임 설계가 필요하다.
각 팀원들에 순차적인 merge를 이어 받아 필수 기능을 구현했다.
이번 프로젝트에서는 분배할 요소가 적어서
같은 스크립트, 씬, 오브젝트 등을 서로 작업해서 merge 중 conflict가 발생하는 경우가 많았다.
그래서 정상적으로 동작하던 스크립트들도 원인 모를 에러가 발생해 골머리를 앓았다.
최대한 씬은 나누어서 작업하고 같은 스크립트나 오브젝트는 소통하며 서로 작업이 겹치지 않도록 해야되는 주의점을 알게되었다.

🔸핵심 기능
board.cs
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
void Start()
{
int[] arr = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5 };
arr = arr.OrderBy(x => Random.Range(0f, 5f)).ToArray();
//배치하려는 카드가 12개이므로 5f까지 남기기
for (int i = 0; i < 12; i++)// 12로 변경
{
GameObject go = Instantiate(card, this.transform);
float x = (i % 3) * 1.6f - 1.6f;
float y = (i / 3) * 1.8f - 3.2f;
//3개씩 4줄을 내려면 나누기를 4가 아닌 3으로 조정해야 함
go.transform.position = new Vector2(x, y);
go.GetComponent<card>().Setting(arr[i]);
}
GameManager.Instance.cardCount = arr.Length;
}
|
cs |
카드 배치를 3 x 4 로 세팅하고 직사각형의 1.2 x 1.5 값으로 설정했다.
Panel.cs
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public Image targetImage;
public Text targetText;
public void LoadContent(int idx)
{
Texture2D loadedTexture = Resources.Load<Texture2D>("6teamMember" + idx);
if(loadedTexture != null)
{
targetImage.sprite = Sprite.Create(loadedTexture, new Rect(0, 0, loadedTexture.width, loadedTexture.height), Vector2.one * 0.5f);
}
TextAsset loadedTextAsset = Resources.Load<TextAsset>("text" + idx);
if(loadedTextAsset != null)
{
targetText.text = loadedTextAsset.text;
}
}
|
cs |
카드를 뒤집어 매치가 되었을 때 나타나는 맴버 카드가 구현되었다.
🥏 트러블 슈팅
- GitHubDesktop을 사용하여 merge를 할 때 conflict가 발생하면 해당 내역을 면밀히 살펴보고 분명하지 않다면 팀원들과 의논 후 두가지 중 최신이며 알맞는 데이터를 병합해야 한다. 오늘 발생한 무수한 병합 오류로 대처방법을 터득했다.
- BGM이 retry 이후 재생되지 않은 문제
- Panel이 정상적으로 나타나지 않은 문제
- 타이머가 게임 성공 이후 계속 작동하는 문제
- 게임 종료와 동시에 Retry 버튼이 나타나면서 Panel를 가리는 문제
🚀 내일 할 일 (To-do)
- 필수 기능 및 도전 기능 추가할 부분 논의 및 작업
- 현재 프로젝트 데이터 다듬기
- 영상 녹화 기능 사용해 보기
- PPT 관련해서 논의하기
'Development In Unity > 내일배움캠프_Unity 12기' 카테고리의 다른 글
| 내배캠_TIL250926 [팀 프로젝트 (완료)] (0) | 2025.09.26 |
|---|---|
| 내배캠_TIL250925 [팀 프로젝트 (진행)] (0) | 2025.09.25 |
| 내배캠_TIL250924 [Github Desktop] (0) | 2025.09.23 |
| 내배캠_TIL250922 [부트캠프 OT, 변수] (0) | 2025.09.22 |
| 내일배움캠프 (Unity_12기) 사전캠프 3일차 (0) | 2025.09.16 |
