void SetQuestion() { gameStatus = GameStatuss.Playing; //set GameStatus to playing //set the answerWord string variable answerWord = questionDataScriptable.questions[currentQuestionIndex].answer; //set the image of question questionImage.sprite = questionDataScriptable.questions[currentQuestionIndex].questionImage; ResetQuestion(); //reset the answers and options value to orignal selectedWordsIndex.Clear(); //clear the list for new question Array.Clear(wordsArray, 0, wordsArray.Length); //clear the array //add the correct char to the wordsArray for (int i = 0; i < answerWord.Length; i++) { wordsArray[i] = char.ToUpper(answerWord[i]); } //add the dummy char to wordsArray for (int j = answerWord.Length; j < wordsArray.Length; j++) { wordsArray[j] = (char)UnityEngine.Random.Range(65, 90); } wordsArray = ShufflesList.ShuffleListItems <char>(wordsArray.ToList()).ToArray(); //Randomly Shuffle the words array //set the options words Text value for (int k = 0; k < optionsWordList.Length; k++) { optionsWordList[k].SetWord(wordsArray[k]); } }
/// <summary> /// When we click on any options button this method is called /// </summary> /// <param name="value"></param> public void SelectedOption(WordData value) { //if gameStatus is next or currentAnswerIndex is more or equal to answerWord length if (gameStatus == GameStatuss.Next || currentAnswerIndex >= answerWord.Length) { return; } selectedWordsIndex.Add(value.transform.GetSiblingIndex()); //add the child index to selectedWordsIndex list value.gameObject.SetActive(false); //deactivate options object answerWordList[currentAnswerIndex].SetWord(value.wordValue); //set the answer word list currentAnswerIndex++; //increase currentAnswerIndex //if currentAnswerIndex is equal to answerWord length if (currentAnswerIndex == answerWord.Length) { correctAnswer = true; //default value //loop through answerWordList for (int i = 0; i < answerWord.Length; i++) { //if answerWord[i] is not same as answerWordList[i].wordValue if (char.ToUpper(answerWord[i]) != char.ToUpper(answerWordList[i].wordValue)) { correctAnswer = false; //set it false break; //and break from the loop } } //if correctAnswer is true if (correctAnswer) { Debug.Log("Correct Answer"); wordquizscore += 10; gameStatus = GameStatuss.Next; //set the game status currentQuestionIndex++; //increase currentQuestionIndex //if currentQuestionIndex is less that total available questions if (currentQuestionIndex < questionDataScriptable.questions.Count) { Invoke("SetQuestion", 0.5f); //go to next question } else { Debug.Log("Game Complete"); //else game is complete gameComplete.SetActive(true); } } } }