본문 바로가기
TIL

내일배움캠프 4일차 TIL

by vvin39 2025. 4. 10.

📌 카드 뒤집기 게임

같은 모양의 르탄이를 뒤집는 게임!

 

카드 배치하기

  • 프팹을 반복 생성하여 4 X 4 배열 만들기
  • 카드 프리팹을 16개 생성해 부모 오브젝트(cards) 아래에 배치.
  • transform.parent를 설정해 계층 정리 용이.
for (int i = 0; i < 16; i++)
{
    GameObject go = Instantiate(card);
    go.transform.parent = cards;
}

이미지 랜덤 로직

  • 카드 인덱스가 쌍으로 존재 (총 8쌍)
  • OrderBy + Random.Range 조합으로 배열을 섞고, 각 카드에 번호를 부여
  • 동일 쌍의 인덱스를 섞어서 매번 다른 카드 배열 구성
int[] arr = { 0, 0, 1, 1, ..., 7, 7 };
arr = arr.OrderBy(x => Random.Range(0f, 7f)).ToArray();

이미지 부여

인덱스 기반으로 리소스 불러오기

  • 카드에 대응되는 이미지(rtan0 ~ rtan7)를 동적으로 불러와 설정
  • Resources.Load<Sprite>를 통해 이미지 경로에서 스프라이트 로드
public void Setting(int idx)
{
    index = idx;
    frontImage.sprite = Resources.Load<Sprite>($"rtan{index}");
}

 

판정 시스템

  • 두 카드가 같으면 제거, 다르면 다시 닫기
  • cardCount를 기준으로 남은 카드 개수 관리
  • 모두 맞추면 게임 종료 처리 가능
  • 인덱스로 매칭 확인 → 제거 or 뒤집기 처리 → 카운트로 게임 진행 추적
if(firstCard.index == secondCard.index)
{
    firstCard.DestroyCard();
    secondCard.DestroyCard();
    cardCount -= 2;

    if(cardCount == 0)
    {
        // 게임 종료 처리
    }
}
else
{
    endTxt.SetActive(true);
    Time.timeScale = 0.0f;
    firstCard.CloseCard();
    secondCard.CloseCard();
}

 

💡 느낀 점

  • Resources.Load로 이미지 불러오는 방식이 깔끔했고, 리소스를 잘 정리해두면 유용하겠다고 느꼈다.
  • 배열 섞기, 카드 매칭 로직, 게임 종료 처리까지 전체 흐름을 작은 코드로 구현해보며 게임 로직 구조가 익숙해졌다.
  • 오브젝트 관리가 늘어날수록 변수나 상태 관리가 중요하다는 것을 체감했다.

.

 기억하고 싶은 것 

  • Instantiate로 프리팹 복제 → 반복문으로 다수 배치 → transform.parent로 정돈
  • Resources.Load<Sprite>()로 이미지 동적 불러오기
  • OrderBy(x => Random.Range())로 배열 섞기
  • 카드 짝 맞추기 로직에서 상태 초기화(firstCard = null)는 반드시 필요

 

 

'TIL' 카테고리의 다른 글

구조체(struct) vs 클래스(class)  (0) 2025.04.14
내일배움캠프 5일차 TIL  (0) 2025.04.11
내일배움캠프 3일차 TIL  (0) 2025.04.09
내일배움캠프 2일차 TIL  (0) 2025.04.08
내일배움캠프 1일차 TIL  (0) 2025.04.07

최근댓글

최근글

skin by © 2024 ttuttak