// Start is called before the first frame update void Start() { //Paramètres de la roue de chiffres espacementBoutons = 30.0f; rayonBoutons = 0.1f; //Ajout des gameobjects à une liste (pour un futur parcourt de cette liste) gObjList = new List <GameObject>(); gObjList.Add(g1); gObjList.Add(g2); gObjList.Add(g3); gObjList.Add(g4); gObjList.Add(g5); gObjList.Add(g6); gObjList.Add(g7); gObjList.Add(g8); gObjList.Add(g9); gObjList.Add(g10); gObjList.Add(g11); gObjList.Add(g12); //Initialisation de quelques variables oklm isHeld = false; code = "6476"; tryCode.text = ""; boutons = new List <buttonBehavior>(); initWheelOK = true; originalParent = transform.parent; screenText.text = "Code :"; //Par défault, c'est le bouton 'en haut' de la roue qui est sélectionné (bouton correction => g10) selectedButton = g10.GetComponent <buttonBehavior>(); selectedButton.Select(); idCurrentButton = 10; idFormerButton = idCurrentButton; canvas = transform.GetChild(0).gameObject; canvas.SetActive(false); }
/// <summary> /// Change la sélection du bouton [debug] /// </summary> public void SwitchButtonDebug() { if (idFormerButton == 12) { idCurrentButton = 1; } else { idCurrentButton = idFormerButton + 1; } // Enfin, selon l'id du bouton, on fait l'échange de sélection entre les boutons if (idFormerButton != idCurrentButton) { selectedButton = boutons[idCurrentButton - 1]; formerButton = boutons[idFormerButton - 1]; selectedButton.Select(); formerButton.Deselect(); idFormerButton = idCurrentButton; } }
/// <summary> /// Change le bouton sélectionné en fonction de l'angle /// </summary> /// <param name="angle"></param> public void SwitchButton(float angle) { // Il y a 12 boutons => répartition en 12 zones // De manière empirique : on a regardé l'angle calculé sur l'inspecteur en runtime pour savoir quel id correspond à quel angle if (menuPosition[0] >= 0) { if (0.0f < angle && angle <= Mathf.PI / 12) { idCurrentButton = 10; } if (Mathf.PI / 12 < angle && angle <= 3 * Mathf.PI / 12) { idCurrentButton = 9; } if (3 * Mathf.PI / 12 < angle && angle <= 5 * Mathf.PI / 12) { idCurrentButton = 8; } if ((5 * Mathf.PI / 12 < angle && angle <= Mathf.PI / 2) || (-Mathf.PI / 2 <= angle && angle <= -5 * Mathf.PI / 12)) { idCurrentButton = 7; } if (-5 * Mathf.PI / 12 < angle && angle <= -3 * Mathf.PI / 12) { idCurrentButton = 6; } if (-3 * Mathf.PI / 12 < angle && angle <= -Mathf.PI / 12) { idCurrentButton = 5; } if (-Mathf.PI / 12 < angle && angle <= 0.0) { idCurrentButton = 4; } } if (menuPosition[0] < 0) { if (0.0f < angle && angle <= Mathf.PI / 12) { idCurrentButton = 4; } if (Mathf.PI / 12 < angle && angle <= 3 * Mathf.PI / 12) { idCurrentButton = 3; } if (3 * Mathf.PI / 12 < angle && angle <= 5 * Mathf.PI / 12) { idCurrentButton = 2; } if ((5 * Mathf.PI / 12 < angle && angle <= Mathf.PI / 2) || (-Mathf.PI / 2 <= angle && angle <= -5 * Mathf.PI / 12)) { idCurrentButton = 1; } if (-5 * Mathf.PI / 12 < angle && angle <= -3 * Mathf.PI / 12) { idCurrentButton = 12; } if (-3 * Mathf.PI / 12 < angle && angle <= -Mathf.PI / 12) { idCurrentButton = 11; } if (-Mathf.PI / 12 < angle && angle <= 0.0) { idCurrentButton = 10; } } // Enfin, selon l'id du bouton, on fait l'échange de sélection entre les boutons if (idFormerButton != idCurrentButton) { selectedButton = boutons[idCurrentButton - 1]; formerButton = boutons[idFormerButton - 1]; selectedButton.Select(); formerButton.Deselect(); idFormerButton = idCurrentButton; } }