我只是試圖做基本的狀態管理,以便程序不會直接運行,而是等待播放器的某種響應。現在它只是跳過while循環,而「Test1」行從不打印,它直接轉到「正在進行」。我確實有一些其他腳本正在運行,但是他們都沒有使用更新循環,並且不會影響這個腳本。Unity - 用協程管理狀態,在循環時不會確認
這是我的第一篇文章在這裏,請告訴我,如果有什麼東西我應該知道的政策等
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class GameManager : MonoBehaviour {
public static int turn;
public float turnDelay = 1f;
private WaitForSeconds turnWait;
private bool turnOver = false;
void Start()
{
turnWait = new WaitForSeconds(turnDelay);
turn = 1;
ResetAndSetup();
Debug.Log("Starting");
StartCoroutine(GameLoop());
}
IEnumerator GameLoop()
{
yield return StartCoroutine(RoundFirstPlayer());
Debug.Log("Proceeding");
yield return StartCoroutine(RoundSecondPlayer());
}
private IEnumerator RoundFirstPlayer()
{
while (turnOver = false)
{
if (Input.GetKey(KeyCode.Space))
{
turnOver = true;
Debug.Log("Test1");
}
yield return null;
}
Debug.Log("Test2");
}
private IEnumerator RoundSecondPlayer()
{
yield return null;
}
void ResetAndSetup()
{
ColumnManager.ResetColumns();
}
}
將標記更改爲** Unity3D ** –