반응형

안녕하세요 ~ 솔루션입니다 ! 오늘은 시간제한을 두거나 시간이 얼마나 지났는지 알 수 있는 타이머를 만들어보려고 합니다 !





먼저 스크립트입니다. 시간으로 사용할 변수를 선언합니다. (저는 인스펙터창에서 조절하려고 public으로 만들었습니다. 고정되어있는 시간으로 만드려면 private으로 두셔도 상관없으나 Start 함수 같은 곳에서 초기화 시켜주셔야 합니다.)

그리고 시간의 변화를 시각화 하기 위해 Text 오브젝트를 받아와서 표시하기 위해 Text 변수를 선언했습니다. (단 UI와 관련된 선언을 하기 위해선 using UnityEngine.UI; 가 상단에 추가되어야 합니다.


그리고 선언한 변수에 Time.deltaTime으로 일정한 시간에 따라 감소 되도록 만들어 주고 Text에 표시해주기 위해 텍스트변수명.text을 사용해주세요.

(여기서 텍스트변수명 = ... ~ 으로 코딩해도 문자열은 상관없지만 시간을 문자열이 아닌 자료형으로 선언해서 사용하기 때문에 float형으로 받아오는 것이 아닌 float형을 문자열로 만드는 '.text' 를 사용해야 오류가 나지 않습니다 !)


그리고 Mathf.Round를 사용해서 소수점을 제외시키고 표시합니다 !



그리고 UI로 Text를 추가해서 적당한 위치에 배치하고 선언한 public 텍스트변수에 생성시킨 Text 오브젝트를 드래그앤드랍으로 넣어줍니다.

(저는 인스펙터창에서 설정하기 위해 일부러 public으로 선언해서 '60'이라고 값을 초기화시켰습니다. private이나 Start함수에서 이미 초기화하신 분들은 넣지 않으셔도 됩니다.)



그리고 씬을 실행하면 매 초마다 줄어드는 시간을 보실 수 있습니다 ! 저는 제한시간 형태로 구현하기 위해 시간변수 -= Time.deltaTime 을 했지만 만약 플레이타임을 만들고 싶다면 시간변수를 0으로 초기화 시키고 -=가 아닌 +=로 하시면 매 초마다 증가합니다 :D





오늘은 제한시간, 플레이시간을 구현해보았습니다 ~ 타임어택이나 미션에 자주 사용되기 때문에 유용하게 사용하시길 바랍니다 !

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기