public void ReleaseButton() { if (TakenLetter != null) { //sets upper position to unoccupied occupied this.IsTaken = false; TakenLetter = null; } }
public void PlaceButton(LetterButtonScript button) { //sets the position to occupied this.IsTaken = true; //set the taken letter this.TakenLetter = button; //place button physically button.GetComponent <RectTransform>().position = this.GetComponent <RectTransform>().position; //adjust attributes button.LowerBox = !button.LowerBox; button.transform.SetParent(this.transform); }
//activates on click on button and set button in upperbox and place position of button to next free target public void LetterButtonGetsClicked(LetterButtonScript currentLetterButton) { var startHolderButton = _startHolderList.Find(script => script.TakenLetter == currentLetterButton); //if the clicked button is in the lower box if (currentLetterButton.LowerBox) { //check to see if there are any free button holder; does this list has any item which is not taken? if (_targetHolderList.Any(holder => !holder.IsTaken)) { //there are some free ones //? ##create a local variable (only allowed in this function). in the _targetHolderList (=all button holder gameobjects (=that can store and hold button letters) in upper box) get the first gameobject/script that is not taken and if there is one, set it as the value of the new variable firstFreeTarget var firstFreeTargetButton = _targetHolderList.FirstOrDefault(letter => !letter.IsTaken); startHolderButton.ReleaseButton(); firstFreeTargetButton.PlaceButton(currentLetterButton); } else { //there are no free ones Debug.Log("no space in target for the clicked button ... what to do? ;)"); } } //check if upper box is full, if so set check interactable if (_targetHolderList.Last <LetterHolderScript> ().IsTaken) { _checkButtonScript.SetInteractable(true); //sets all letter buttons to not interactable _letterList.ForEach(letter => letter.SetInteractable(false)); } if (_targetHolderList.First <LetterHolderScript> ().IsTaken) { _releaseButtonScript.SetInteractableRelease(true); } }