//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); }
//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); }