[Unity] 4주차 - 르탄이 카드 뒤집기

MINO·2024년 3월 25일

게임 개발 종합반

목록 보기
4/6
post-thumbnail

2024-03-25
4주차는 총 복습과 보드게임을 목표로 강의를 시작하였다.
강의만 3~4회독 돌려서 복습의 복습의 복습이지만, 혼자서 안보고 만들 수 있을지는 모르겠다.
구글링과 Unity Docs 만 잘 활용한다면, 충분할 것 같기도 하다.

게임 개발 기초 강의라 더 이상의 새로운 컴포넌트나 기능은 배우지 않았고, 복습한 내용과 로직을 최대한 활용해 강의의 마지막 게임을 제작하였다.

문자열 보간 방법과 Linq 네임스페이스에 관한 내용과 함께 포스팅하려고 했지만,
5주차 강의 - 주변기능 학습 을 마친 뒤, 남은 사전 캠프 기간 동안 정리하는 것이 좋을 것 같아 빼두었다.


Resources

이전 강의까지는 외부 이미지를 저장해두고 꺼내올 때 Inspector에 드래그앤 드롭 방식을 사용하며 이미지를 저장하는 폴더로 Assets - Images 를 사용했었다.

이번 강의에서는 이미지를 코드로 지정하기 위해 Resources 폴더를 사용한다.
매니저님께 질문했을 때, 코드로 불러오는 방식이 조금 더 효율적이고, 개발자에게 맞는 방식이라고 알려주셨다.

Unity Docs - 씬에서 게임플레이에 사용할 에셋의 인스턴스를 만드는 대신 스크립트에서 온디멘드 방식으로 에셋을 로드할 수 있습니다. Resources 라고 하는 폴더에 에셋을 배치하면 됩니다. Resources.Load 함수를 사용하여 에셋을 로드해야 합니다.
Unity Docs - 특수 폴더 이름

Resources.Load

GameObject obj = Resources.Load<GameObject>(PATH);
frontImage.sprite = Resources.Load<Sprite>($"rtan{idx}");
  • GameObject : 불러올 유형의 에셋 (Sprite , TextAsset, AudioClip ...)
  • PATH : 에셋이 위치한 경로와 이름 (ex : rtan0)

Scripts

RetryBtn.cs

  • SceneManager 를 통해 MainScene 호출

4주차 - RetryBtn.cs


Card.cs

  • Resources 폴더의 이미지를 Card 앞면의 sprite 에 붙이기
  • 카드 열고 닫기
    • 애니메이션 설정
    • 첫번째 카드와 두번째 카드일 때, GameManager 에게 카드 정보 전달
    • GameManager 를 통해 짝이 맞은 카드 제거
    • 짝이 맞지 않은 카드는 다시 뒤집기

4주차 - Card.cs


Board.cs

  • 배열을 무작위로 섞어 카드를 섞기
  • 섞은 카드를 나란히 4 × 4 배치
  • GameManager 에게 카드의 개수 전달

4주차 - Board.cs


GameManager.cs

  • 싱글톤 패턴
  • 시간과 UI 관리
    • 30초가 지나면, 게임 종료
    • 30초 안에 카드를 다 제거하면, 게임 종료
    • 게임 종료 시, "끝" 이라는 텍스트를 보여주고, 클릭하면 재시작
  • Card.cs 에게서 첫번째 카드와 두번째 카드의 정보를 받아 짝이 맞는지 확인
    • 짝이 맞다면, 카드 삭제
    • 짝이 맞지 않다면, 카드 뒤집기
    • 남은 카드가 없다면 ? 게임 종료

4주차 - GameManager.cs

4주차 - 르탄이 카드 뒤집기

결과물

profile
안녕하세요 게임 개발하는 MINO 입니다.

0개의 댓글