Wie kann ich warten für 3 Sekunden und legen Sie dann einen bool auf true, in C#?
Meinem Skript/Spiel/Ding machen einem gameobject nach rechts bewegen und wenn ich auf dance (ein button, den ich erstellt) es anhält. Dann, wenn der Zähler (die ich nicht brauchen kann, einen Zähler, aber ich wollen, warten Sie 3 Sekunden) erreicht, wie 3 (wenn Sie einmal auf Tanz startet der Zähler) mein gameobject ist wohl weiter gehen nach rechts.
Wenn Sie können korrigieren Sie den code, das wäre cool.
Wenn Sie es korrigieren können und mir erklären was ich falsch gemacht habe, es wäre noch genial. Ich habe gerade angefangen zu lernen, C# auf der Einheit.
using System;
using UnityEngine;
using System.Collections;
public class HeroMouvement : MonoBehaviour
{
public bool trigger = true;
public int counter = 0;
public bool timer = false;
//Use this for initialization
void Start()
{
}
//Update is called once per frame
void Update()
{ //timer becomes true so i can inc the counter
if (timer == true)
{
counter++;
}
if (counter >= 3)
{
MoveHero();//goes to the function moveHero
}
if (trigger == true)
transform.Translate(Vector3.right * Time.deltaTime); //This moves the GameObject to the right
}
//The button you click to dance
void OnGUI()
{
if (GUI.Button(new Rect(10, 10, 50, 50), "Dance"))
{
trigger = false;
timer = true;//now that the timer is set a true once you click it,The uptade should see that its true and start the counter then the counter once it reaches 3 it goes to the MoveHero function
}
}
void MoveHero()
{ //Set the trigger at true so the gameobject can move to the right,the timer is at false and then the counter is reseted at 0.
trigger = true;
timer = false;
counter = 0;
}
}
Sie müssen gehen Sie einfach auf die Leerzeichen...
ja, könnte habe 1/5 der Linien!
Bezahlt werden muss klocs 🙂
ja, könnte habe 1/5 der Linien!
Bezahlt werden muss klocs 🙂
InformationsquelleAutor Froob | 2013-06-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man es machen, ganz leicht mit Coroutinen:
Sehen http://docs.unity3d.com/Documentation/ScriptReference/index.Coroutines_26_Yield.html für weitere Informationen über Coroutinen und wie Sie diese verwenden. Sie sind Recht ordentlich, wenn Sie versuchen zu tun, eine zeitgesteuerte Reihe von Veranstaltungen.
Danke, ich aktualisierte den code.
InformationsquelleAutor Jan Thomä
Ersten Konter ein float.
Dann ändern
counter++;
zucounter += Time.deltaTime
.Update() wird für jedes frame so gegen 3 auf den Dritten Rahmen. Zeit.deltaTime gibt Ihnen die Zeit, die zwischen diesem Bild und dem vorherigen frame. Zusammen wirkt das wie ein timer.
InformationsquelleAutor Andrew Ngo
Ich lieber mit StartCoroutine
hier ist der link:
http://docs.unity3d.com/ScriptReference/MonoBehaviour.StartCoroutine.html
ex:
InformationsquelleAutor Basil Mariano
Ich würde dies verwenden, wenn multi-threading:
Diese Spinnen wird der Faden... sucht alternativen!!
InformationsquelleAutor Alan Sturtivant
wenn Sie brauchen nur zu warten, die Sie verwenden können, sleep-Methode der Thread
Verursacht der thread ist auch keine gute Lösung für dieses problem. @JanThomä korrekt ist.
Dieser code freeze der Haupt-thread. Tun Sie dies nicht.
InformationsquelleAutor VhsPiceros