public bool AllAnswered() { if (dragOnly || objectFlying || returnedAllAnswered) { return(false); // When antura is animating we should not complete the assessment } if (sortables == null) { return(false); } IAnswer[] answer = new IAnswer[answers.Count]; IAnswer[] answerSorted = new IAnswer[answers.Count]; //Answers like are actually sorted var sorted = sortables.OrderByDescending(x => x.transform.position.x).ToArray(); int index = 0; foreach (var a in answers) { answerSorted[index] = sorted[index].gameObject.GetComponent <AnswerBehaviour>().GetAnswer(); index++; } // Answers sorted by ticket answer = answerSorted.OrderBy(a => a.GetTicket()).ToArray(); for (int i = 0; i < answer.Length; i++) { Debug.Log(" answer:" + answer[i].Data().Id + " sorted:" + answerSorted[i].Data().Id); } for (int i = 0; i < answer.Length; i++) { //If sorted version has letter shapes in wrong positions we know we didn't find solution if (answer[i].Equals(answerSorted[i]) == false) { return(false); } } //Debug.Log("Return TRUE"); // two words identical! returnedAllAnswered = true; Coroutine.Start(AllCorrectCoroutine()); return(true); }