
public Card firstCard;
public Card secondCard;
첫번째카드가 열렷을때 내 정보를 넘기고
두번째 카드가 열렷을때, 퍼스트카드에 데이터 유무를 확인하고 있다면 정보를 넘겨준다.
public static GameManager instance;
private void Awake()
{
if (instance == null)
{
instance = this;
}
}
card에서 퍼스트카드와 세컨드카드에 접근하기 위해 싱글톤을 만들고 instance에 this를 넣어준다
//퍼스트카드가 비었다면
if (GameManager.instance.firstCard == null)
{//퍼스트카드에 내 정보를 넘겨준다.
GameManager.instance.firstCard = this;
}//퍼스트카드가 비어있지 않다면
else
{//세컨드 카드에 내 정보를 넘겨준다
GameManager.instance.secondCard = this;
//매치 함수를 호출해준다
GameManager.instance.Matched();
}
조건문을 만들고
public void Matched() //매치가 됫는지 비교하는 함수
{
if (firstCard.idx == secondCard.idx)
{
firstCard.DestroyCard();
secondCard.DestroyCard();
}
else
{
firstCard.CloseCard();
secondCard.CloseCard();
}
firstCard 와 secondCard에 값을 비교한후, 값을 다시 빼준다.
firstCard = null;
secondCard = null;
카드 2장이 일치하면 파괴시키고 일치하지 않다면 다시 뒤집는다
void DestroyCardInvoke()
{
Destroy(gameObject);
}
public void DestroyCard()
{
Invoke("DestroyCardInvoke", 0.5f);
}
public void CloseCard()
{
Invoke("CloseCardInvoke", 0.5f);
}
void CloseCardInvoke()
{
anim.SetBool("isOpen", false);
front.SetActive(false);
back.SetActive(true);
}
카드를 2장 선택하면 확인할 겨를도 없이 파괴되거나 틀려서 다시 뒤집혀서 Invoke딜레이를 줍니다.
그후 카드가 모두 파괴되엇을때 끝?re를 띄워주기위해
public int cardCount = 0;
cardoCount에 배열의 갯수만큼 넣어주면 되므로
GameManager.instance.cardCount = arr.Length;
동일한 카드를 맞추면 카운트를 -2 해주고 0이되면 게임이 끝나게 설정한다
cardCount -= 2;
if(cardCount == 0)
{
Time.timeScale = 0.0f;
endTxt.SetActive(true);
}
끝을 누르면 다시시작할수 있는 버튼을 만든다
SceneManager.LoadScene("MainScene");
void Update()
{
if (time > 30.0f)
{
Time.timeScale = 0.0f;
endTxt.SetActive(true);
}
}
Unity창에서 상단을 보면 Edit > Player > Splash Image >Logos 에서 로고를 넣으면 게임이 맨처음 시작될때 이미지들 몇개 나오는걸 구현할 수 있다. 맨처음 made with Unity는 유로버전을 구매해야 없앨 수 있다고 한다. 하지만 지금은 있는게 더 멋잇는거같다 
card에 add Component에서 Audio Source를 추가하고
AudioSource audioSource;
public AudioClip clip;
audioSource = GetComponent<AudioSource>();
카드가 매치 됬을때, 뒤집힐때 소리를 추가하는 코드를 작성
audioSource.PlayOneShot(clip);
MainScene 뿐만이라니라 시작화면에서부터 브금이 들릴수 있게
또, 만약 Audio가 켜져있는데 또 재생되어 2번 들리는걸 방지하기 위해 else destroy도 만들어준다.
public static AudioManager instance;
private void Awake()
{
if (instance == null)
{
instance = this;
DontDestroyOnLoad(gameObject);
//씬을 이동해도 오디오매니저 오브젝트가 파괴되지 않음
}
else //예외처리
{
Destroy(gameObject);
}
}
유니티 상단 File > Bulid Settings 를 보면 일단 MainScene만 Secnes in Build에 들어가있는데,
Add Open Scenes를 눌러 현재보고있는 페이지 (StartScene)를 넣을수 있다.
그 후 Platfrom을 Android로 바꾸어주고 좌측 하단에 Player Settings에 들어가서 Player보면 빌드에 관련된것들이 엄청 많은데,
그중에 Resolution and Presentation에 들어가서
핸드폰은 세로로 기니, Portrait를 켜주고 가로로 긴 Landscape Right,Left를 꺼준다.
Configuration > Scripting Backend에서 IL2CPP로바꿔주고 ARM64를 활성화한다
그후 Package Name을 입력해준다
마지막으로 맨아래에서 Publishing Settings > Keystore Manager > Create New > Anywhere 클릭하고 확인
키스토어는 안드로이드에서 앱을 배포할수잇는 일종의 인증키라고 한다.
Password를 입력하고
alias도 입력해준다
이번에는 Edit에서 Preferences > External Tools 에 Android부분이 모두 체크되어있는지 확인한다.
와.. 영어지옥
이제 다 되었으면 Build Settings에서 Build를 한다.