Merci pour ta réponse ! J'ai cherché un peu et j'ai trouvé ce qui faisait glisser mon personnage.Axel74 a écrit :Tu as probablement une erreur dans ton script qui applique une force sur ton personnage en continu.
Oubli le physics material, ton personnage n'est pas censé glisser.
Pour le partage de tes script pense à les envoyer avec les balises de code si tu veux qu'on t'aide :[/code]Code : Tout sélectionner
[code] ton code
Bon, avant ça pense à faire des essais sur ta scène. Désactive TES script, créer un nouvel objet avec un Rigidbody2D, un box collider 2D et rien de plus. Met le dans ta pente et voit ce que ça donne. N'hésite pas à repartir à "zéro" en faisant des essais sur une scène neuve. Bien souvent le problème vient d'un de nos script...
Pour ce qui est d'écrire tes script je te suggère d'aller chercher un petit tuto youtube pour essayer de repartir sur une bonne base ... Mais envoi toujours le tien qu'on puisse te corriger plus facilement.
C'est les "transform.rotation" au début. Le problème étant que si je les enlève, ma personnage se casse la figure à chaque pente ou obstacle...
Code : Tout sélectionner
#pragma strict
var ToucheSol:boolean=false;
var anim:Animator;
function Start () {
}
function Update () {
transform.rotation.x = 0;
transform.rotation.y = 0;
transform.rotation.z = 0;
anim.SetBool("Marche", false);
anim.SetBool("Saut", false);
anim.SetBool("Escalade", false);
if(ToucheSol == false){
anim.SetBool("Escalade", false);
}
if(Input.GetKeyDown(KeyCode.Space) && ToucheSol == true){
anim.SetBool("Saut", true);
GetComponent.<Rigidbody2D>().AddForce(Vector2(0,2000));
}
if(Input.GetKey(KeyCode.RightArrow)){
anim.SetBool("Marche", true);
transform.localScale.x = 0.6552502;
transform.Translate(Vector2(0.1,0));
}
if(Input.GetKey(KeyCode.LeftArrow)){
anim.SetBool("Marche", true);
transform.localScale.x = -0.6552502;
transform.Translate(Vector2(-0.1,0));
}
if(Input.GetKey(KeyCode.UpArrow) && tag == "Player"){
GetComponent.<Rigidbody2D>().AddForce(Vector2(0,6));
anim.SetBool("Escalade", true);
}
if(Input.GetKey(KeyCode.DownArrow) && tag == "Player"){
GetComponent.<Rigidbody2D>().AddForce(Vector2(0,-6));
anim.SetBool("Escalade", true);
}
}
function OnCollisionEnter2D(coll:Collision2D){
if(coll.gameObject.tag == "Sol"){
ToucheSol=true;
}
}
function OnCollisionExit2D(coll:Collision2D){
if(coll.gameObject.tag == "Sol"){
ToucheSol=false;
}
}