public IEnumerator ShowNegativeFeedbackDrag() { //step 0 //set check and release to not interactable checkButtonScript.SetInteractable(false); _menuButtonDragScript.SetInteractable(false); _listenScript.SetInteractable(false); //step 1 //instanziiere bild mit rotem X in der mitte vom screen var wrongMark = Instantiate(RedXPrefab, RedXBox.transform) as GameObject; yield return(new WaitForSeconds(3f)); //step 2 //kill bild mit rotem x in der mitte Destroy(wrongMark); //step 4 //set check and release interactable again checkButtonScript.SetInteractable(true); _menuButtonDragScript.SetInteractable(true); _listenScript.SetInteractable(true); //step 5 //make buttons dragable again BlockAllLetterRaycasts(false); }
public void PrepareDragScene() { SW.Stop(); SW.Reset(); //use current Task of TaskItemList WordItem currentWord = Words[wordItemCount]; //instantiate CheckButton var checkButtonDrag = Instantiate(CheckButtonPrefab, CheckBox.transform) as GameObject; checkButtonScript = checkButtonDrag.GetComponent <CheckButtonDragScript>(); checkButtonScript.SetInteractable(false); //instantiate menu button var menuButtonGo = Instantiate(MenuButton, MenuButtonBox.transform); _menuButtonDragScript = menuButtonGo.GetComponent <MenuButtonDragScript>(); _menuButtonDragScript.SetInteractable(true); var listenButtonGo = Instantiate(ListenButton, ListenBox.transform); _listenScript = listenButtonGo.GetComponent <ListenDragScript>(); _listenScript.SetInteractable(true); foreach (var distractorStr in currentWord.Distractors) { //instantiate button holder in lowerBox var holderDrag = Instantiate(ButtonHolderPrefab, LowerBox.transform); var holderDragScript = holderDrag.GetComponent <LetterHolderDragScript>(); holderDragScript.Lower = true; //instantiate Button var letterDrag = Instantiate(LetterDragPrefab, holderDrag.transform) as GameObject; var letterScript = letterDrag.GetComponent <LetterTextScript>(); letterScript.Holder = holderDragScript; //set textvalue to distractor char letterScript.GetComponentInChildren <Text>().text = distractorStr; //set button to the lower box and to a disctractor letterScript.LowerBox = true; letterScript.IsDistractor = true; //add distractor to letterlist _letterList.Add(letterDrag.GetComponent <LetterTextScript>()); //Set button position to occupied in lower box holderDragScript.IsTaken = true; //? ##tell the holderGo (and its script) that he is holding "letterScript" now. This is the button gameobject with the letter in it. So he knows that he is holding the letter, by setting the "takenletter" variable (if we need it later on) holderDragScript.TakenLetter = letterScript; //add button to holder lowerbox list _startHolderDragList.Add(holderDragScript); } //instantiate wordletter buttons and add them to the lowerboxlist foreach (var letterChar in currentWord.Word) { //instantiate lower button box var holderDrag = Instantiate(ButtonHolderPrefab, LowerBox.transform); var holderDragScript = holderDrag.GetComponent <LetterHolderDragScript>(); holderDragScript.Lower = true; //instantiate button var letterDrag = Instantiate(LetterDragPrefab, holderDrag.transform) as GameObject; var letterScript = letterDrag.GetComponent <LetterTextScript>(); letterScript.Holder = holderDragScript; //set textvalue of button to wordletter char letterScript.GetComponentInChildren <Text>().text = letterChar.ToString(); //set button to lower box and to not a distractor letterScript.LowerBox = true; letterScript.IsDistractor = false; //add letter to letterlist _letterList.Add(letterDrag.GetComponent <LetterTextScript>()); //push true letters to list for finish function trueLetters.Add(letterDrag.GetComponent <LetterTextScript>()); //set buttonposition to occupied in lower box holderDragScript.IsTaken = true; //? ## same as above, but with the correctButtonLetter holderDragScript.TakenLetter = letterScript; //add button to lowerbox list _startHolderDragList.Add(holderDragScript); } //shuffle the buttons foreach (Transform child in LowerBox.transform) { child.SetSiblingIndex(Random.Range(0, LowerBox.transform.childCount)); } // creates an empty box in the upper box for each character in the word letter foreach (var letter in currentWord.Word) { //instantiates the gameobjects var letterDrag = Instantiate(ButtonHolderPrefab, UpperBox.transform) as GameObject; var targetDrag = letterDrag.GetComponent <LetterHolderDragScript>(); targetDrag.Lower = false; //sets the empty box to not yet occupied targetDrag.IsTaken = false; //add an entry in the upperbox list targetHolderDragList.Add(targetDrag); } Listen(); //start Stopwatch SW.Start(); }