示例#1
0
    public void Check(CheckButtonDragScript button)
    {
        BlockAllLetterRaycasts(true);

        WordItem currentWordItem = Words[wordItemCount];
        string   currentWord     = currentWordItem.Word;

        var upperWord = "";

        foreach (var upperLetter in targetHolderDragList)
        {
            var upperChar = upperLetter.GetComponentInChildren <Text>().text;
            upperWord = upperWord + upperChar;
        }

        if (currentWord.Equals(upperWord))
        {
            // start coroutine bei der erst feedback anbgegeben wird, dann feedback gelöscht wird, dann scene cleanup, + scene switch
            //show right symvol
            StartCoroutine(ShowPositiveDragFeedback());
        }
        else
        {
            //show wrong symbol
            StartCoroutine(ShowNegativeFeedbackDrag());
        }

        writeToText(upperWord);
    }
示例#2
0
    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();
    }