Hola chicos, estoy tratando de construir un sistema de búsqueda basado en listas en Unity. Todo está funcionando excepto este fragmento de código aquí:
for (int i = currentPoints; i >= 0; i++) { if (Quests[i].pointsRequired <= currentPoints) { Debug.Log("ping"); currentQuestid += 1; } }No estoy muy seguro de por qué, pero cualquier sugerencia o ayuda sería genial, ¡gracias!
Guión completo:
clase pública questManager: MonoBehaviour { public int currentQuestid;
[System.Serializable] public class Quest { public int pointsRequired; public GameObject objects; public int questID; public string objective; public string pointName; public string info; public float waitTime; public bool enabled = false; public Text objectiveText; public Text remainingText; public Text infoText; } public Quest[] Quests; public int currentPoints; public float currentdelay; public int required; void Start() { currentQuestid = 0; currentPoints = 0; for (int i = 0; i < Quests.Length; i++) { Quests[i].objectiveText.text = Quests[i].objective; } } void Update() { for (int i = 0; i < Quests.Length; i++) { Quests[i].objects.SetActive(i == currentQuestid); } for (int i = 0; i < Quests.Length; i++) { Quests[i].remainingText.text = Quests[i].pointName + ": " + currentPoints + "/" + Quests[i].pointsRequired; } for (int i = currentPoints; i >= 0; i++) { if (Quests[i].pointsRequired <= currentPoints) { Debug.Log("ping"); currentQuestid += 1; } } }`Error tipográfico simple en bucle for :
for (int i = currentPoints; i >= 0; --i) { //Be safe if (Quests.Length <= i) continue; if (Quests[i].pointsRequired <= currentPoints) { Debug.Log("ping"); currentQuestid += 1; } } Específicamente, desea disminuir i , no incrementarlo.