示例#1
0
    //Déplace l'objet joueur sur la face du Punching Ball et effectue un mouvement circulaire sur celle-ci.
    private void rotatePlayerObject()
    {
        //Rayon du cercle autour duquel le joueur va effectuer un mouvement circluaire : pour que l'objet soit en surface du punching ball,
        //on doit compter la moitié de la dimension X du punching ball plus celle de l'utilisateur
        float radius = (bInstance.transform.lossyScale.z / 2) + (gameObject.transform.lossyScale.z / 2);

        //On place d'abord l'objet au centre du cercle de rotation.
        gameObject.transform.position = bInstance.GetComponent <Collider>().bounds.center;
        //Puis on réalise le mouvement autour du cercle.
        float newX = gameObject.transform.position.x + (Mathf.Cos(timeCounter) * radius);
        float newZ = gameObject.transform.position.z + (Mathf.Sin(timeCounter) * radius);

        gameObject.transform.position = new Vector3(newX, gameObject.transform.position.y, newZ);
    }
示例#2
0
    //Copie le mouvement circulaire du joueur
    private void rotateCameraObject()
    {
        float radius = (bInstance.transform.lossyScale.x / 2) + offset;

        gameObject.transform.position = bInstance.GetComponent <Collider>().bounds.center;
        float tc   = pInstance.getTimeCounter();
        float newX = gameObject.transform.position.x + (Mathf.Cos(tc) * radius);
        float newZ = gameObject.transform.position.z + (Mathf.Sin(tc) * radius);

        gameObject.transform.position = new Vector3(newX, gameObject.transform.position.y, newZ);
        //On pointe la caméra vers l'objet joueur.
        gameObject.transform.LookAt(pInstance.transform);
    }