Game-w4)카드뒤집기 게임

gyu·2023년 2월 8일
0

game-unity

목록 보기
3/5

보드게임(카드 뒤집기)- gameManager의 역할이 커짐


구성
하나의 gameobj안에 16개의 cards가 들어가는 방식
나중에 이 카드들은 prefab화 시킬 예정

  • 이미지 사이즈 조절
    1) 카메라 사이즈 조절
    2) 픽셀 조절
    ->asset안에 있는 이미지를 눌렀을 때 pixel per unit으로 조절
    (들어가는 숫자가 커질 수록 게임 속에 들어가는 이미지는 작아지고, 숫자가 작아질수록 이미지는 커짐)
  • 시간판에 시간흐르게 하기
float time;
//시간흐르게
time += Time.deltaTime;
//소수점2자리까지 반영하기
timeTxt.text = time.ToString("N2");
  • 카드 배치하기 (for loop)
    1) for loop를 사용해서 16개의 카드 만들기
for(int i = 0; i <16 ; i++){
//카드 생성
instantiate(card);
//4개생성될때마다 y값이 변경되게-몫 이용, 4개생성된후 x값은 다시 0일때로 돌아오게-나머지이용
//card.transform.position = new Vector3((i % 4) * 1.4f, (i / 4)* 1.4f, 0);
}
//가운데에 위치하게 만들기
float x = (i % 4) * 1.4f - 2.1f;
float y = (i / 4) * 1.4f - 3.0f;
card.transform.position = new Vector3(x, y, 0);
  • 16개 카드에 짝으로 이미지 랜덤으로 넣기
    1) 8개의 이미지가 랜덤으로 2개씩 사용되게끔 0-7까지의 리스트 만들기
    2) 리스트 섞기
    3) 하나씩 카드에 이미지 붙여주기

1)

int[] nums = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 };

2)

nums = nums.OrderBy(item => Random.Range(-1.0f, 1.0f)).ToArray();

OrderBy - 이순서대로 정렬
item => Random.Range(-1.0f, 1.0f) - 각 item 을 랜덤한 순서로 정렬
ToArray - array로 바꿔주기

3)
gameManager에서 resource 불러오기

-이미지들을 resources 폴더로 옮겨주기

//이미지를 찾기위해 이미지명 만들기- 둘을 합친후 string 화 해주기
string name = "rtan" + nums[i].ToString();
//front에 있는 sprite를 찾아서 만든이름으로 변경해주기
card.transform.Find("front").GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>(name);
  • 카드 매칭하기
    -gameManager->singleton
    -첫번째 카드, 두번째 카드 기억하기
    ->firstCard , secondCard -> gameobject만들어주기
    ->카드가 몇번째인지 확인하기
        if(gameManager.I.firstCard == null) {
            gameManager.I.firstCard = gameObject;
        }else {
            gameManager.I.secondCard = gameObject;
            gameManager.I.isMatched();
        }

-카드가 같은지 다른지 확인하는 방법
->스크립트에 method(destroy ,close) 만들기
->다른 스크립트에 있는 method 불러오는 방법(getComponent().methodName() 사용)

firstCard.GetComponent<card>().destroyCard();
profile
#TechExplorer 🚀 Curious coder exploring the tech world, documenting my programming journey in a learning journal

0개의 댓글