c# - c# unity 暂停一个 for 循环,直到 bool 返回 true
问题描述
我有一个 for 循环,它遍历一个类数组,实例化一个新的播放器类并传入一个字符串(名称)。
public void createPlayers( int pInput)
{
//holds name
string temporaryString="defualt";
players = new Player[pInput];
for (int i = 0; i < pInput; ++i)
{
//PlayerTypesNameFunction()// this gets and returns a string to Temporary String
//wait till function returns with true meaning player(i) has entered name
players[i] = new Player(100,temporaryString);
Debug.Log(players[i].m_sName);
}
CurrentState = GameState.m_eQueueWeather;
CallGameCurrentState();
}
我希望它调用一个让玩家输入名称的函数,并且仅在该函数完成时才继续 for 循环。将 bool 更改为 true(bool gotInfo),然后循环继续获取返回并存储在temporaryString
(上面 instatiated 的字符串) 中的字符串,并将其分配给这一行中的新玩家players[i] = new Player(100,temporaryString);
。
我是朝着正确的方向前进还是应该以不同的方式解决这个问题?先感谢您
解决方案
我不会在这里建议无限循环。我会选择这里yield return
解释的 subrutine 方法
创建子程序
IEnumerator WaitForKeyDown(KeyCode keyCode)
{
while (!Input.GetKeyDown(keyCode))
yield return null;
}
随时随地等待
yield return StartCoroutine(WaitForKeyDown(KeyCode.Return));
当用户按下回车时,这将恢复。然后,您可以检查输入值并重新询问。
推荐阅读
- rust - 如何从 crates.io 中删除已发布的 crate?
- python - Time.sleep() 暂停执行 - Python
- python - TensorFlow:如何生成可微分掩码
- php - 如何使用正则表达式匹配开始和结束标签以及它们之间的任何内容,包括空格?
- javascript - Highcharts中情节线上方的空白空间
- reactjs - How to trigger the fetch call in saga?
- javascript - 电话号码长度验证 JavaScript
- javascript - 为什么我的第二个音频文件不能使用 currentTime 属性播放?
- sql - 编译代码时出现此错误:SQL 值
- javascript - Underscorejs - IndexBy 中是否有任何方法用于多个变量?