我只是尝试进行基本的状态管理,这样程序不会直接运行,而是等待玩家的某种响应。现在它只是跳过while循环并且“Test1”行永远不会被打印出来,它直接进入“Proceeding”。我确实有一些其他的脚本正在运行,但没有一个正在使用更新循环并且不会影响这个。
这是我在这里发表的第一篇文章,所以请告知我是否应该了解政策等方面。
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();
}
}
答案 0 :(得分:1)
你犯了一个小错误:
相反
while (turnOver = false)
使用
while (!turnOver)
或
while (turnOver == false)