보드게임(카드 뒤집기)- gameManager의 역할이 커짐
구성
하나의 gameobj안에 16개의 cards가 들어가는 방식
나중에 이 카드들은 prefab화 시킬 예정
float time;
//시간흐르게
time += Time.deltaTime;
//소수점2자리까지 반영하기
timeTxt.text = time.ToString("N2");
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);
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);
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();