코드를 살펴보면 if문을 사용해 카드카운트가 0(모든 카드를 맞췄을 시)단계가 총 3단계로 나누어져 있기에 2단계까지는 클리어시 다음단계버튼을 활성화 시킬수 있도록 하고 elapsedTime을 활용해 현재기록과 최고기록을 저장하기위해 PlayerPrefs에 저장할 수 있게 하였다.
그래서 나온 코드가 elapsedTime=Time.time-startTime; 을 활용하였다.
elapsedTime은 private로 선언해두고 게임시작 후 흘러간 시간이 낮을수록 (카드를 빠르게 맞췄을 수록)bestTime이 될 수 있게 또는 CurrentTimeTxt에 표시될 수 있게 PlayerPrefs에 저장해놓고 다시플레이를 하더라도 베스트기록은 유지되거나 갱신될 수 있게 코드를 짜고 결과화면에 도출될 수 있도록 코드를 짰다.
여기서 주의하고 기억해 둬야 할 것은
•Time.time
•**Time.timeScale**의 영향을 받습니다.
•게임 속도 조정에 따른 경과 시간을 계산할 때 유용.
•Time.realtimeSinceStartup
•**Time.timeScale**의 영향을 받지 않습니다.
•실제 경과 시간을 측정할 때 유용.
실패시에도 이와 비슷하게
if (time<=endtime)
{
Time.timeScale=0f;
Result.SetActive(true);
retry.SetActive(true);
if (cardCount>0)
{
audioSource.PlayOneShot(failClip, 0.02f);
FailMsg.SetActive(true);
}
이런식으로 사용이 되었다.
다음으로는 씬을 전환할때 로딩화면같은 것을 만들었다.
위에 짤을 보면 페이드 인, 아웃 느낌으로 씬 전환마다 로딩화면 같이 추가해 주었다 간단하게 만들수 있을 줄 알았는데 처음 만들다 보니 생각보다 까다로운게 많았다.
저렇게 우선 빈오브트안에 캔버스와 원하는 이미지를 넣고 프리팹화 시켜 애니메이션을 두개를 연결해주고 트리거를 만들어 연결해준다.
나는 위같이 씬로더라는 스크립트를 만들어 관리해주었다 스크립트를 만들어 두고 프리팹화 시켜놓으면 다른 씬에 프리팹해놓은걸 넣어놓기만해도 활용이 가능하고 스크립트를 수정한다면 더 넓은 방향으로 활용이 가능할거 같아 씬로더는 조금 더 공부해서 애니메이션을 적절히 사용할 수 있도록 만드는게 목표이다. 내가 참고한 유튜브 동영상 출처