2016-06-09 10 views
0

Ich persönlich konnte die Antwort auf stackoverflow nicht schon finden, aber meine Frage ist irgendwie einfach, ich verstehe einfach nicht, was ich in diesem Szenario tun muss: Wenn ich den folgenden Code habe , wie würde ich BroadcastMessage verwenden, so dass, wenn mein Timer (myCT) gleich 500 ist, eine Nachricht in Einheit angezeigt wird, Danke.Unity CSharp - Timer & Broadcast Nachricht

using UnityEngine; 
using System.Collections; 
using UnityEngine.UI; 

public class myTimer : MonoBehaviour 
{ 
    public float myCT = 600; 
    public Text timerText; 


    void Start() { 
    timerText=GetComponent<Text>(); 
    } 

    // countdown 
    void Update() { 
    myCT -= Time.deltaTime; 
    timerText.text = myCT.ToString("f0"); 
    print (myCT); 

    if(myCT = 598){ 
     //I want something to happen here using broadcast message() 
    } 
    } 
} 
+0

Sie tun nichts davon. Verwenden Sie einfach Invoke oder InvokeRepeating für einfache Timer in Unity. – Fattie

Antwort

0

Dieser wie ein Countdown-Timer sieht, die von 600 bis 500.First alles zählt, vergleichen Sie Sachen mit == (if(myCT = 598){}) nicht mit =. Da myCT ein float ist, ist es nie garantiert, dass oder beim Senken ist. Sie müssen also <= statt == verwenden.

if(myCT = 598){ 

} 

sollte

sein
if(myCT <= 500){ 
    Debug.Log("Timer reached!"); 
    BroadcastMessage("doSomthingFunction", 500.0F); 
} 
+0

Blick auf die Doco zuerst viel zu lernen. Beachten Sie das Argument, das Sie haben können ... https://docs.unity3d.com/ScriptReference/Component.BroadcastMessage.html – Fattie

+0

@JoeBlow Dieser Typ hat gerade seinen Kommentar gelöscht. Ich mag das nicht, weil es andere Kommentare schwer verständlich macht. – Programmer

+0

Das war schnell, vielen Dank. Die einzige Sache, die ich jetzt frage, ist, wie man die Nachricht vom Protokoll nimmt und es auf einer GUI anzeigt. –

Verwandte Themen