public GameObject ResultImg; // 점수판
public Text scoreText; // 점수
public Text timeText; // 남은 시간
public Text ClearText; // 클리어 텍스트
// 게임 종료 후 점수판
public void ResultText(int number)
{
// 점수판 활성화
ResultImg.SetActive(true);
// number == 0 즉 게임 클리어했을 경우
if (number == 0)
{
ClearText.text = "Game Clear!!!";
float TT = 30 - time;
timeText.text = TT.ToString("N0");
}
// 그 외는 게임 오버
else
{
ClearText.text = "Game Over...";
timeText.text = "X";
}
// 점수는 기본 1000에 매칭 횟수의 2배를 뺌
int ST = 1000 - matchCount * 2;
scoreText.text = ST.ToString();
}
if(CardCount == 0)
{
ResultText(0);
Time.timeScale = 0f;
}
메서드 ResultText의 매개변수 number는 클리어 여부를 나타내며 30초가 지나면 게임이 오버가 되었기 때문에 1를 주고 모든 카드를 다 제거 즉, CardCount가 0이 되면 매개변수를 0으로 저장하여 ClearText의 내용을 "Game Clear!!!"로 오버시 에는 "Game Over..."를 출력하게 함
public GameObject StageImg;
// 스테이지 선택지를 활성화 시키는 기능
public void StageSelect()
{
StageImg.SetActive(true);
}
// 게임 재시작, 시작할 때 씬 이동
public void GameStart()
{
SceneManager.LoadScene("MainScene");
}
// Start씬에서 게임 시작버튼 기능
public void GameReStart()
{
SceneManager.LoadScene("MainScene");
AudioManager.instance.ChangeMusic(0);
}
// 처음 게임 씬으로 이동하는 기능
public void Lobby()
{
SceneManager.LoadScene("StartScene");
AudioManager.instance.ChangeMusic(0);
}
게임이 끝났을 때 로비로 가는 버튼과 재시작하는 버튼을 만들고 기능을 추가하였음
IEnumerator TextChange()
{
// 글씨(하양 => 빨강 / 빨강 => 하양)으로 계속 변경
while (true)
{
// 15초가 지나면 텍스트 반복 변경
if (time > 15)
{
TimeTxt.color = new Color(255, 0, 0);
yield return new WaitForSeconds(0.5f);
TimeTxt.color = new Color(255, 255, 255);
yield return new WaitForSeconds(0.5f);
}
// 지나지 않으면 변경 X
else
{
yield return 0;
}
}
}
AudioSource audioSource;
public AudioClip[] clip;
private bool soundCheck = true;
private void Awake()
{
if (instance == null)
{
instance = this;
DontDestroyOnLoad(gameObject); //씬을 이동할때 해당 오브젝트를 파괴하지 않고 그대로 씬을 넘어가는 코드
}
else
{
Destroy(gameObject); //싱글톤이 2개가 존재할때 instance가 이미 있으므로 나머지를 파괴하여 하나만 존재케하는 코드
}
instance.soundCheck = true;
}
void Start()
{
audioSource = GetComponent<AudioSource>();
audioSource.clip = clip[0];
audioSource.Play();
}
private void Update()
{
ChangeMusic(1);
}
public void ChangeMusic(int number)
{
if (number==0)
{
audioSource.clip = clip[0];
audioSource.Play();
}
if(Gamemanager.instance?.time > 15.0f && soundCheck && number==1)
{
audioSource.clip = clip[1];
audioSource.Play();
soundCheck = false;
}
}