Re: [MY-AL] Propulsion de joueur de quelques mètres au lieu d'être éjecté
Publié : 12 Août 2022 19:30
Du coup, faudrait que je mette le trigger sur un autre script ? Pas forcément lié au joueur ?
Le forum de la communauté francophone d'Unity
https://www.unity3d-france.com/unity/phpBB3/
https://www.unity3d-france.com/unity/phpBB3/viewtopic.php?f=89&t=18744
Code : Tout sélectionner
Dans le Update, speedZ = 0
Dans le Update, speedZ = 0
Dans le Update, speedZ = 15
Dans le Update, speedZ = 15
Dans le Update, speedZ = 14,16617
Dans le Update, speedZ = 13,91974
Dans le Update, speedZ = 13,64887
Dans le Update, speedZ = 13,21765
Dans le Update, speedZ = 12,88105
Dans le Update, speedZ = 12,56306
Dans le Update, speedZ = 12,07262
Dans le Update, speedZ = 11,75422
Dans le Update, speedZ = 11,28324
Dans le Update, speedZ = 10,9765
Dans le Update, speedZ = 10,51476
Dans le Update, speedZ = 10,28885
Dans le Update, speedZ = 9,957096
Dans le Update, speedZ = 9,702163
Dans le Update, speedZ = 9,521896
Dans le Update, speedZ = 9,31073[..]
Dans le Update, speedZ = 14,94995
Dans le Update, speedZ = 15
Dans le Update, speedZ = 15
Dans le Update, speedZ = 15
Dans le Update, speedZ = 15
Dans le Update, speedZ = 15
Dans le Update, speedZ = 15
Dans le Update, speedZ = 15
Dans le Update, speedZ = 15
Dans le Update, speedZ = 15[..]
Dans le Update, speedZ = 15
Dans le Update, speedZ = 15
Dans le Trigger, moveDirection.y équivaut à la valeur 30
Dans le Update, speedZ = 15
Dans le Update, speedZ = 15
Oui et speedZ égal 15 si je bouge pendant le saut"Est-ce que tu appuis sur la touche pour avancer pendant le saut?"
Code : Tout sélectionner
void Update()
{
//Calcule les directions
//forward = avant/arrière
//right = droite/gauche
Vector3 forward = transform.TransformDirection(Vector3.forward);
Vector3 right = transform.TransformDirection(Vector3.right);
//Est-ce qu'on appuie sur un bouton de direction ?
// Z = axe arrière/avant
float speedZ = Input.GetAxis("Vertical");
// X = axe gauche/droite
float speedX = Input.GetAxis("Horizontal");
// Y = axe haut/bas
float speedY = moveDirection.y;
Debug.Log("Debut de l'Update, speedZ = " + speedZ);
Code : Tout sélectionner
//Applique la rotation haut/bas sur la caméra
playerCamera.transform.localRotation = Quaternion.Euler(rotationX, 0, 0);
//Input.GetAxis("Mouse X") = mouvement de la souris gauche/droite
//Applique la rotation gauche/droite sur le Player
transform.rotation *= Quaternion.Euler(0, Input.GetAxis("Mouse X") * rotationSpeed, 0);
//Debug.Log("Dans le Update, moveDirection.x équivaut à la valeur "+moveDirection.x);
Debug.Log("Fin de l'Update, speedZ = " + speedZ);
}
Code : Tout sélectionner
private void OnTriggerEnter(Collider other)
{
if (other.name == "Cube")
{
Debug.Log("Debut du Trigger, speedZ vaut " + speedZ);
moveDirection.y = 20f;
moveDirection.z = 1000f;
characterController.Move(moveDirection *Time.deltaTime);
Debug.Log("Fin du Trigger, speedZ vaut " + speedZ);
}
}