[내일배움캠프 사전캠프] + 칼 피하는 르탄 완성, 4강
1. 오늘 학습 한 내용
- 오목 관련 팀 회의
- 칼 피하는 르탄이 완성
- 사전캠프 강의 4-3까지 학습
- C# 달리기반 '기초 문법 톺아보기' 학습
2. 학습하며 겪었던 문제점 & 에러
- 아래에서 후술할 '칼 피하는 르탄이' 제작 과정에서 일부 이슈가 존재했다.
3. 다음에 학습 할 것은 무엇인지
- C# 달리기반 문법 학습 마무리
- 사전 캠프 4강 마무리
4. 칼 피하는 르탄이

결과적으로 처음에 의도했던대로 게임이 작동하였다.
조작감 부분에서 별로라는 느낌이 들어 계속해서 속도가 적용되는 부분을 '키를 누른 상태에서만' 작동하게
속도값을 초기화 해줄 수 있도록 바꾸어서 많이 개선되었다.
제작을 하면서 2가지 큰 문제가 발생했었다.
1) 게임 오버 후 RetryButton을 눌러 재시작 후 다시 게임 오버가 되었을 때 RetryButton이 뜨지 않는 문제
2) 인스턴스 값을 받아오지 못하는 문제
위의 2가지 문제 때문에 시간적인 소모가 좀 있었다.
원인은 간단했는데
1)의 경우 RetryButton에서 "MainScene" 을 불러온다고 세팅해놓았으나, 정작 Unity에서 Scene 이름이 SampleScene인 상태여서 기능하지 않았었다.
2)의 경우 인스턴스 선언을 instance라고 해놓고 정작 사용은 Instance로 하여 대소문자 이슈로 문제가 있었다.
제작 후 이슈도 발견했는데

칼이 생성되면서 서로 부딪혀서 기울어진 상태에서 떨어지는 문제가 확인되었다.
게임 진행 자체에는 큰 문제는 없으나 시각적 디테일은 많이 떨어져보이는 문제가 발생했다.
목적이 복습의 목적이었기에 이 부분에 대해선 수정하지 않고 그냥 두기로 했으나, 이후 분명히 비슷한 문제를 만날 수 있기 때문에 해결 방법을 찾아두었다.
🚀 Prefab 오브젝트들이 서로 영향을 주지 않게 하기
🔍 문제 상황:
프리팹으로 생성된 오브젝트들이 같은 위치에 생성될 때, 충돌(Collision) 때문에 서로 튕기거나 예상치 못한 동작을 함.
✅ 해결 방법 3가지
1️⃣ Physics2D.IgnoreCollision() 사용 (가장 추천)
📌 특정 오브젝트들끼리 충돌을 무시하는 방법
🔹 구현 방법
{
GameObject[] objects = GameObject.FindGameObjectsWithTag("PrefabObject");
foreach (GameObject obj in objects)
{
if (obj != gameObject) // 자기 자신은 제외
{
Physics2D.IgnoreCollision(GetComponent<Collider2D>(), obj.GetComponent<Collider2D>());
}
}
}
🎯 효과:
✔ 같은 Tag를 가진 프리팹들끼리 충돌 무시
✔ Start()에서 실행되므로 성능에 부담 없음
2️⃣ Layer를 이용한 충돌 무시 (Inspector 설정 필요)
📌 레이어를 활용하여 특정 그룹끼리 충돌을 방지하는 방법
🔹 설정 방법
- 프리팹에 새로운 Layer를 추가
- Unity 상단 메뉴 → Edit → Project Settings → Physics2D 로 이동
- Layer Collision Matrix에서 프리팹끼리 충돌하지 않도록 설정
- 코드에서 Layer를 변경 가능
🎯 효과:
✔ Inspector에서 미리 설정 가능
✔ 코드 없이 Unity UI에서 쉽게 조정 가능
3️⃣ 랜덤 위치 조정 (중첩 방지)
📌 같은 위치에 겹쳐서 생성되는 걸 사전에 방지
🔹 구현 방법
do
{
randomPos = new Vector3(Random.Range(-5f, 5f), Random.Range(-5f, 5f), 0f);
} while (Physics2D.OverlapCircle(randomPos, 0.5f) != null); // 충돌이 감지되면 다시 위치 선정
Instantiate(prefab, randomPos, Quaternion.identity);
🎯 효과:
✔ 처음부터 충돌 없이 배치
✔ 추가적인 IgnoreCollision() 설정 없이 해결
🔚 결론 (추천 방법)
방법 | 장점 | 단점 |
Physics2D.IgnoreCollision() | 프리팹끼리 충돌을 무시 (가장 효율적) | 한 번만 실행해야 함 |
Layer 충돌 무시 | Unity UI에서 쉽게 설정 | Layer 관리 필요 |
랜덤 위치 배치 | 애초에 겹치지 않도록 생성 | 완벽한 해결책은 아님 |
👉 내 추천:
✔ 충돌을 완전히 무시하려면 Physics2D.IgnoreCollision() 사용
✔ 특정 그룹끼리만 충돌 제거하려면 Layer 설정
✔ 같은 공간에 겹쳐서 생성되는 걸 방지하려면 랜덤 위치 조정
5. 오목 팀 기획
팀원들과 함께 개개인의 오목 관련 개인 기획에 대해 발표하고 그에 대한 Q&A 시간을 가진 후 가장 괜찮고 발전시키고 싶은 기획을 하나 뽑아 그것을 토대로 최종 팀 오목 기획서를 작성하였다.
기획이란 것이 나의 아이디어를 어떤 의도와 목적을 가졌는지, 상대방을 얼마나 잘 납득시킬 수 있는지 상당히 중요하다고 생각되는 부분이기에 이것을 연습하기 위해 팀원끼리 모두 동의하여 진행을 하였다.
전반적으로 다른 팀원분들의 기획을 보며 다양한 아이디어가 있다는 것을 확인할 수 있는 부분과
나의 기획적인 아이디어를 잘 정리해보는 시간을 가질 수 있었다.
6. 카드 뒤집기

for문을 활용하여 카드를 16개를 반복시킨 후
그 for문 안에서 x, y좌표를 설정하여 4x4 모양으로 펼치는 부분까지 따라 구현했다.
아직까진 크게 막히는 부분은 없었고 4번째 반복을 하다보니 이해가 어려운 부분도 없었다.