private IEnumerator SpawnObject(float seconds) { if (Spawnable()) { yield return(new WaitForSeconds(seconds)); var obj = spawnableObjects.FirstOrDefault(x => x.tag == "Obstacle"); spawnLocation = new Vector3(12, Random.Range(-8, 12), 0); if (selectedRevision != null && SceneDoesntContainWordObstacle()) { if (Random.Range(0, 2) == 0) { spawnLocation = new Vector3(12, 12, 0); obj = spawnableObjects.FirstOrDefault(x => x.tag == "Word Obstacle"); foreach (var component in obj.GetComponentsInChildren <Text>()) { if (component.name == "Word") { component.text = selectedRevision.variant.text; } if (component.name == "Answer") { var answer = RevisionAnswerHandler.GenerateAnswer(selectedRevision); component.text = answer; } } } } //if the scene contains a word obstacle, don't spawn any standard obstacles at that height if (GameObject.FindGameObjectsWithTag("Word Obstacle").Length > 0) { spawnLocation = new Vector3(12, Random.Range(-8, 8), 0); } Instantiate(obj, spawnLocation, Quaternion.identity); //We've spawned, so now we could start another spawn isSpawning = false; } }
public void CheckWordCollision(GameObject wordObject) { var selectedWord = selectedRevision.variant.text; var selectedAnswer = selectedRevision.translation.text; var possibleWrongAnswers = selectedRevision.wrong_answers; foreach (var component in wordObject.GetComponentsInChildren <Text>()) { var correct = RevisionAnswerHandler.IsCorrect(selectedAnswer, possibleWrongAnswers, component); if (correct) { revisions.Remove(selectedRevision); selectedRevision = revisions.FirstOrDefault(); scoreCount += 1; } else { selectedRevision.wrong_answers.Remove(component.text); } } Destroy(wordObject); }