사전캠프 TIL

[내일배움캠프 사전캠프] + 카드 뒤집기 게임

mrmuffin 2025. 3. 31. 17:48

목표:

보드 게임 만들기, 카드 뒤집기 게임을 통해 Unity 기능 복습하기.

 

게임내용:

카드를 뒤집어 가며 같은 모양의 카드를 찾아내는 기억, 추리 게임.

 

 

학습 키워드

 

Unity의 기본적인 기능 활용 (UI, 애니메이션 등등)

랜덤 배치 로직 ( OrderBy + Random. Range )

isOpen의 활용

매칭 시스템 (첫 번째/두 번째 카드 비교) 

싱글톤 패턴 ( GameManager . Instance )
인보크(Invoke)활용 (카드 뒤집기 딜레이)

게임 종료 조건 ( 남은 카드가 없을 때 cardCount == 0)

 


오늘 학습 한 내용을 나만의 언어로 정리하기

카드 배치를 좌표화 시켜 16장의 카드를 (i % 4) 와 (i / 4) 계산으로 4×4로 깔끔하게 배치함.

거기에 x값과 y값을 조절해 (-2.1,-3.0) 카드를 화면 중앙에 오게끔 배치.

→ x = (i % 4) * 1.4 - 2.1 , y = (i / 4) * 1.4 - 3.0

 

랜덤 로직을 통한 카드 섞기

[0,0,1,1, ... , 7,7] 배열을 OrderBy(x => Random.Range(0,7)) 로 랜던하게 섞은 뒤 Resources 폴더에 있는 rtan0~7 이미지를 카드에 할당.

 

애니메이션

isOpen이 true면 뒤집히고 false면 복구되게끔하여 기본상태와 뒤집힌 상태를 전환함.

Matched 함수에서 한 번씩 카드를 뒤집고 다시 초기화 하기 위해 null값을 넣어 초기화해줌.

 public void Matched()
    {
        if(firstCard.idx == secondCard.idx)
        {
           //파괴
           firstCard.DestroyCard();
           secondCard.DestroyCard();
        }
        else
        {
            //덮기
            firstCard.CloseCard();
            secondCard.CloseCard();
        }
       
        firstCard = null;
        secondCard = null;    
  }