Her kan du se, hvordan man kan lave en timer, der tæller tiden, go stopper tiden når du rammer et eller andet, f.eks. en målstreg eller en portal.
Opret et nyt UI → text
Omdøb “Text” til “Timer Text”
Ændr størrelse, farve og placering, så det er som du gerne vil have.
Opret et lille script, der skal lægges på din portal eller hvad der nu skal aktivere at tiden stopper igen, og kald det “WinScript”
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class WinScript : MonoBehaviour
{
private void OnTriggerEnter(Collider other)
{
GameObject.Find("Player").SendMessage("Finnish");
}
}
Opret nu et nyt script, der hedder “TimerScript”, og træk det hen på din “Player”
Klik på din “Player”, og træk “Timer Text” hen på “TimerScript” i Inspektoren.
Scriptet:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TimerScript : MonoBehaviour
{
public Text timerText;
private float startTime;
private bool finnished = false;
// Start is called before the first frame update
void Start()
{
startTime = Time.time;
}
// Update is called once per frame
void Update()
{
if(finnished)
return;
float t = Time.time - startTime;
string minutes = ((int) t / 60).ToString();
string seconds = (t % 60).ToString("f2");
timerText.text = minutes + ":" + seconds;
}
public void Finnish()
{
finnished = true;
timerText.color = Color.yellow;
}
}