public class green : MonoBehaviour
{
private AudioSource source;
public AudioClip sound;
static int result = 0;
void Start()
{
StartCoroutine("RoutineCheckInputAfter3Minutes");
Debug.Log("a");
}
IEnumerator RoutineCheckInputAfter3Minutes()
{
System.Random ran = new System.Random();
int timeToWait = ran.Next(1, 50) * 1000;
Thread.Sleep(timeToWait);
source = this.gameObject.AddComponent<AudioSource>();
source.clip = sound;
source.loop = true;
source.Play();
System.Random r = new System.Random();
result = r.Next(1, 4);
Debug.Log("d");
yield return new WaitForSeconds(3f * 60f);
gm.life -= 1;
Debug.Log("z");
}
public void Update()
{
if (result == 1 && gm.checka == true)
{
Debug.Log("e");
StopCoroutine("RoutineCheckInputAfter3Minutes");
gm.life += 1;
source.Stop();
gm.checka = false;
Debug.Log("j");
}
if (result == 2 && gm.checkb == true)
{
Debug.Log("f");
StopCoroutine("RoutineCheckInputAfter3Minutes");
gm.life += 1;
source.Stop();
gm.checkb = false;
Debug.Log("z");
}
else if (result == 3 && gm.checkc == true)
{
StopCoroutine("RoutineCheckInputAfter3Minutes");
Debug.Log("g");
gm.life += 1;
source.Stop();
gm.checkc = false;
Debug.Log(gm.life);
}
}
}
Es gibt zwei ProblemeBenutzer null Eingabeprüfung für einige Zeit und Faden
Ich will Musik stoppen und Leben variable Rückgang um -1, wenn der Benutzer drückt keine Tasten für 3 Protokoll. Aber wenn der Benutzer den rechten Knopf drückt, wird die Lebensvariable + 1 erhöht. Aber ich weiß nicht, wie ich 3 Minuten lang eine Nulleingabe vom Benutzer erhalten kann.
Wenn ich
while
für dieses Programm verwende, wird dies abgeschaltet & hellip; bis das leben unter 0 ist, möchte ich musik wiederholen, die in unregelmäßigen zeiten gespielt wird.
Was bedeutet 'result' bedeuten? Was ist 'gm'? Wie entscheiden Sie sich für checka, checkb und checkc? Sie sollten einen sauberen Code eingeben und die unnötigen Teile davon entfernen. –
Ich dachte, die Leute wüssten es sofort ;;; das nächste Mal werde ich meine Aufmerksamkeit schenken ;;; –