[RESOLU] La vitesse de mon objet ne change pas et mon objet traverse les murs
Publié : 16 Sep 2020 16:40
Bonjour à tous,
Je suis débutant et j'essaye de comprendre comment faire bouger des objet etc...
J'ai fait le code ci dessous pour bouger mon objet "barre". J'ai quelques soucis, donc voici mes 3 questions:
1) - Pourquoi la vitesse de translation de mon objet reste inchangée quelle que soit la valeur de ma variable vitesse_barre?
En effet, que je mette vitesse_barre = 1f; ou vitesse_barre= 5000f; ça ne change absolument rien (même en déclarant un int à la place).
2) - Comment je fais pour que mon objet barre ne traverse plus les murs qu'il rencontre?
Car j'ai tout essayé, j'ai mis des box collider à mes murs et ma barre, désactivé IsTrigger, mais rien n'y fait
NB: J'ai essayé de mettre un rigidbody et faire bouger ma barre avec un AddForce mais ça ne me convient pas car la barre se déplace certes, mais avec de l'inertie, et moi je veux que ma barre arrete de se déplacer une fois que j'ai fini d'appuyer sur mes touches "Horizontales", c'est pour ça que je me suis rabattu sur Translate, et comme ça le système n'a pas à calculer la physique.
3) - Je viens de voir un nouveau problème en vérifiant mes boxs de collisions avec des rigidbody: mes objet s'arrentent là où il n'y a pas de box de collision. J'ai dupliqué ma barre et observé ce qui se passe quand elle tombe à différent endroits sur mon sol (info utile: le sol est un carré sur lequel j'ai extrudé tous les bords), et regardez ce qu'il se passe:
Pourtant, les colliders de mon sol sont bien au niveau du bas et non au niveau des bords non?:
Merci beaucoup pour votre aide vous êtes supers
Je suis débutant et j'essaye de comprendre comment faire bouger des objet etc...
J'ai fait le code ci dessous pour bouger mon objet "barre". J'ai quelques soucis, donc voici mes 3 questions:
1) - Pourquoi la vitesse de translation de mon objet reste inchangée quelle que soit la valeur de ma variable vitesse_barre?
En effet, que je mette vitesse_barre = 1f; ou vitesse_barre= 5000f; ça ne change absolument rien (même en déclarant un int à la place).
2) - Comment je fais pour que mon objet barre ne traverse plus les murs qu'il rencontre?
Car j'ai tout essayé, j'ai mis des box collider à mes murs et ma barre, désactivé IsTrigger, mais rien n'y fait
Code : Tout sélectionner
public class Barre : MonoBehaviour
{
public float vitesse_barre = 1f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
// ici j'ai mis -Input car je veux inverser la direction
transform.Translate(Vector3.right * -Input.GetAxis("Horizontal") * vitesse_barre* Time.deltaTime);
}
3) - Je viens de voir un nouveau problème en vérifiant mes boxs de collisions avec des rigidbody: mes objet s'arrentent là où il n'y a pas de box de collision. J'ai dupliqué ma barre et observé ce qui se passe quand elle tombe à différent endroits sur mon sol (info utile: le sol est un carré sur lequel j'ai extrudé tous les bords), et regardez ce qu'il se passe:
Pourtant, les colliders de mon sol sont bien au niveau du bas et non au niveau des bords non?:
Merci beaucoup pour votre aide vous êtes supers