Tengo un bucle for que recorre una matriz de clase que crea una instancia de una nueva clase de jugador y pasa una cadena (nombre).
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(); } Quiero que llame a una función que haga que el jugador escriba un nombre y solo continúe durante el ciclo cuando finalice esa función. cambia un bool a verdadero (bool gotInfo), el bucle luego continúa tomando la cadena que se devuelve y almacena en la cadena temporaryString (cadena instanciada arriba) y la asigna al nuevo jugador en esta línea players[i] = new Player(100,temporaryString); .
¿Voy en la dirección correcta o debo abordar este problema de manera diferente? Gracias de antemano
No sugeriría el bucle infinito aquí. Iría por el método de subrutina de yield return que se explica aquí
Crear la subrutina
IEnumerator WaitForKeyDown(KeyCode keyCode) { while (!Input.GetKeyDown(keyCode)) yield return null; }Espera donde quieras
yield return StartCoroutine(WaitForKeyDown(KeyCode.Return));Esto se reanudará cuando el usuario presione enter. A continuación, puede comprobar el valor de entrada y volver a preguntar.