時間経過処理
[SerializeField] private int minute;
[SerializeField] private float seconds;
private float oldSeconds;
private Text timerText;
void Start () {
minute = 0;
seconds = 0f;
oldSeconds = 0f;
timerText = GetComponentInChildren<Text> ();
}
void Update () {
seconds += Time.deltaTime;
if(seconds >= 60f) {
minute++;
seconds = seconds - 60;
}
// 値が変わった時だけテキストUIを更新
if((int)seconds != (int)oldSeconds) {
timerText.text = minute.ToString("00") + ":" + ((int) seconds).ToString ("00");
}
oldSeconds = seconds;
}
参考記事:https://gametukurikata.com/program/time
Coroutine・Invoke
Coroutine
private float time = 3.5f;
void Start(){
StartCoroutine("TimeStart");
}
IEnumerator TimeStart()
{
//timeの時間処理が停止し、経過後処理が進む
yield return new WaitForSeconds(time);
//処理をかく
}
//連続して処理したい時
IEnumerator TimeStarted()
{
for(int h = 0; h < 3; h++){
yield return new WaitForSeconds(time);
//処理をかく
}
}
//処理を停止させたいときは
StopCoroutine("TimeStart");
Invoke
void Start()
{
//3.5秒後にTimeStartの処理が始まる
Invoke("TimeStart", 3.5f);
}
private void TimeStart()
{
//処理をかく
}
コメント