//ESTADO DE PAUSA public void ShowPause() //Se llama a este método al pulsar el botón de salir { if (!((int)ControladorTutorial.TutorialStates.ExitTutorial == gameController.GetTutorialState())) //Si no estamos en el último estado se activa el panel de pausa { tutorialStates[gameController.GetTutorialState()].SetActive(false); //Se desactiva el estado actual para dejar paso al panel de pausa hiddenScreen.SetActive(true); pausePanel.SetActive(true); pausePanel.GetComponent <Animator>().SetTrigger("Agrandar"); //El panel de pausa aparece con una animación } else //Si estamos en el último estado se sale directamente al menú principal. { ExitTutorial(); } }
public Transform MeasureDistance(Transform chipPosition) { //Obtenemos el Transform de la última ficha colocada int closerDropPosition = 0; float closerDropDistance = 999; //Comprobamos qué miniDrop está mas cerca del punto en el que e sltó la ficha for (int i = 0; i < arrayMiniDrops.Length; i++) { float currentDropDistance = Vector3.Magnitude(chipPosition.position - arrayMiniDrops[i].position); if (currentDropDistance < closerDropDistance) { closerDropPosition = i; closerDropDistance = currentDropDistance; } } if (gameControllerNumber == 3) //Si estamos en el tutorial ponemos nuestras reglas (no puede colocarla donde quiera). //Si el estado es SetChip2 entonces solo permitimos la colocación en los minidrops superiores. //En caso contrario se usarán los inferiores, { ControladorTutorial gameController = GameObject.Find("ControladorJuego").GetComponent <ControladorTutorial>(); int tutorialState = gameController.GetTutorialState(); if (tutorialState == (int)ControladorTutorial.TutorialStates.SetCorrectChip2) { if (arrayMiniDrops[closerDropPosition].name == "Abajo" || arrayMiniDrops[closerDropPosition].name == "Derecha") { return(null); } } if (tutorialState == (int)ControladorTutorial.TutorialStates.SetCorrectChip3) { if (arrayMiniDrops[closerDropPosition].name == "Izquierda" || arrayMiniDrops[closerDropPosition].name == "Arriba") { return(null); } } } //1.- Comprobamos si la ficha se va a colocar al principio o al final string chipSetName; DragFicha[] chipListSet = this.transform.GetChild(0).GetComponentsInChildren <DragFicha>(); if (closerDropPosition < 2) //Si es menor que dos, entonces el miniDrop más ecrcano es Arriba o Izquierda, que son los primeros en la jerarquía { //2.- Obtener el nombre de la ficha correspondiente que ya está colocada chipSetName = chipListSet[0].name; } else { //2.- Obtener el nombre de la ficha correspondiente que ya está colocada chipSetName = chipListSet[chipListSet.Length - 1].name; } //3.- Comprobamos las dos condiciones no válidas // - Dos fichas horizontales colocadas una encima de la otra if (chipSetName.Substring(0, 6) == chipPosition.name.Substring(0, 6) && chipSetName.Substring(0, 6) == "FichaH" && (arrayMiniDrops[closerDropPosition].name == "Arriba" || arrayMiniDrops[closerDropPosition].name == "Abajo")) { return(null); } else if (chipSetName.Substring(0, 6) == chipPosition.name.Substring(0, 6) && chipSetName.Substring(0, 6) == "FichaV" && (arrayMiniDrops[closerDropPosition].name == "Izquierda" || arrayMiniDrops[closerDropPosition].name == "Derecha")) { return(null); } float distanceAllowed = this.transform.GetComponent <RectTransform>().position.x / 2; if (closerDropDistance < distanceAllowed) { return(arrayMiniDrops[closerDropPosition]); } return(null); }