我有一个 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();
}
我希望它调用一个函数,让玩家输入一个名字,只有在该函数完成时才继续循环。
将 bool 更改为 true(bool gotInfo),然后循环继续获取返回并存储在 temporaryString
中的字符串(上面已设置的字符串),并将其分配给此行 players[i] = new Player(100,temporaryString);
中的新玩家。
我是在朝着正确的方向前进,还是应该以不同的方式解决这个问题? 提前致谢
答案 0 :(得分:0)
我不建议在这里使用无限循环。我会选择 here
解释的yield return
subrutine 方法
创建子程序
IEnumerator WaitForKeyDown(KeyCode keyCode)
{
while (!Input.GetKeyDown(keyCode))
yield return null;
}
随时随地等待
yield return StartCoroutine(WaitForKeyDown(KeyCode.Return));
这将在用户按下 Enter 键时恢复。然后您可以检查输入值并重新询问。