Пример #1
0
 // Fait tourner la main et l'avant-bras vers la gauche
 public void Gauche()
 {
     if (Activation.RetourneActivation() == false)         // Si le Toggle des informations des os n'est pas activé
     {
         rotationy = 2;                                    // prend la valeur 2
         PositionDeTous.transform.Rotate(0, rotationy, 0); // rotation de l'avant-bras et de la main vers la gauche
     }
 }
Пример #2
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))                                        // Regarde si la bouton droite de la souris a été appuyé
        {
            RaycastHit hit;                                                     // Prend les valeurs du raycast
            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition); // Prend le rayon qui va de la caméra principale à un point d'écran

            if (Physics.Raycast(ray, out hit))                                  // Si le rayon croise un collisonneur(GameObject), il retourne vrai, sinon il retourne faux
            {
                // Si l'utilisateur clique sur le poignet flexion, si le Toggle d'information n'est pas activer et si la main et l'avant-bras n'ont pas subis de rotation
                if (hit.transform.tag == "PoignetPlie" && Activation.RetourneActivation() == false && ToutLaRotation.transform.rotation == RotationInitiale)
                {
                    if (CalAngle1 >= AngleMin)                     // Si l'angle de flexion calculé est plus grand ou égal à l'angle max de la flexion
                    {
                        variablex = -3;                            // prend la valeur de -3
                        Poignet.transform.Rotate(variablex, 0, 0); // rotation du poignet
                    }
                    else
                    {
                        MessageLimite1.SetActive(true);     // Active le MessageLimite1
                        StartCoroutine(DetMessageLimite()); // Débute la fonction DetMessageLimite comme une coroutine qui peut arrêter son exécution
                    }
                }
                // Si l'utilisateur clique sur le poignet extension, si le Toggle d'information n'est pas activer et si la main et l'avant-bras n'ont pas subis de rotation
                if (hit.transform.tag == "PoignetDeplie" && Activation.RetourneActivation() == false && ToutLaRotation.transform.rotation == RotationInitiale)
                {
                    if (CalAngle2 <= AngleMax)                     // Si l'angle d'extension calculé est plus petit ou égal à l'angle max de l'extension
                    {
                        variablex = 3;                             // prend la valeur de 3
                        Poignet.transform.Rotate(variablex, 0, 0); // rotation du poignet
                    }
                    else
                    {
                        MessageLimite2.SetActive(true);     // Active le MessageLimite2
                        StartCoroutine(DetMessageLimite()); // Débute la fonction DetMessageLimite comme une coroutine qui peut arrêter son exécution
                    }
                }
            }
        }
        // Calcul la valeur de l'angle de flexion et d'extension
        CalAngle1 = (Poignet.transform.rotation.x) * 100;
        CalAngle2 = (Poignet.transform.rotation.x) * 100;
    }