https://velog.io/@amberjack/Github-강의-내용
Prefabs에 달린 C# Script는 각각의 Object를 담당할까 아니면 모든 Prefabs를 담당할까?
코드를 작성해본 결과 : 각각의 Object를 담당!
문제점 : 카드 뒤집어서 짝 맞추는 게임을 진행하던 도중, 카드를 한번에 2장 이상 뒤집을 수 있음을 확인.
튜터님과 얘기해본 결과 cardCounter를 사용하여 2장 뒤집힌 경우, openCard() 함수의 최상단에서 return을 하라고 알려주심.
public void openCard() { if(cardCounter > 1) return; ... }
그러나 문제는 해결이 되지 않았다. 고민해본 결과, card prefab에 달린 C# Script는 각각의 prefab만 담당했기 때문에 cardCounter가 각각의 card에 달린 것이었다.
때문에 gameManager.cs에 cardCounter를 만들고 card.cs에서 불러오는 것으로 해결했다.
// 카드 뒤집기 public void openCard() { // 카드가 2장 뒤집혀 있는 동안 다른 카드들 클릭 막기 if (gameManager.I.cardCounter > 1) return; //cardCounter : 현재 게임에 뒤집혀 있는 카드 개수 gameManager.I.cardCounter++; // 카드 뒤집는 효과음 재생 audioSource.PlayOneShot(card_flip); // 카드 뒤집는 애니메이션 활성화 anim.SetBool("isOpen", true); // 카드 뒤집기 transform.Find("front").gameObject.SetActive(true); transform.Find("back").gameObject.SetActive(false); if(gameManager.I.firstCard == null) { // firstCard가 null이면 firstCard로 넣어버리기 gameManager.I.firstCard = gameObject; timeSpan = gameManager.I.time; } else { gameManager.I.secondCard= gameObject; gameManager.I.isMatched(); } }
팀원들과 코드를 합치기 위해 github를 사용했다. 그러나 정말 많은 문제가 터졌는데, 튜터님께 물어보니 .gitignore 세팅을 잘못했다고 하셨다.
👉 반드시 프로젝트의 상위 폴더로 Repository를 설정할 것!