[Résolu] Personnage qui glisse ( Jeu 2D )

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Avatar de l’utilisateur
totoast
Messages : 10
Inscription : 26 Mai 2017 18:25
Localisation : 459, Chemin Alfred Pelloux, La Bâtie - Saint Bernard du Touvet
Contact :

Re: Personnage qui glisse ( Jeu 2D )

Message par totoast » 28 Mai 2017 12:41

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 : Tout sélectionner

[code]
ton code
[/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.
Merci pour ta réponse ! J'ai cherché un peu et j'ai trouvé ce qui faisait glisser mon personnage.
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;
	}
}
N'chaaa ! Bye'chaaa ! Bonjoirlut !

Avatar de l’utilisateur
Axel74
Messages : 100
Inscription : 23 Mai 2014 16:47
Localisation : Thonon - Lyon

Re: Personnage qui glisse ( Jeu 2D )

Message par Axel74 » 28 Mai 2017 15:10

Ah tant mieux alors ! Ok si il se casse la figure comme tu dis, au lieu de modifier la rotation il faut que tu bloques la rotation de ton objet. Tu trouveras ceci dans le Rigidbody2D, contraints, freeze rotation.

Pour ton script, je t'invite à insister un peu plus sur les tutoriels pour comprendre un peu mieux ce que tu écris et approfondir un peu plus sur les possibilités de ces component de base. Ton problème devrait être résolu maintenant, bonne continuation avec ton projet !
Douille ou l'ail que pote étaux ? Yes I like.

Avatar de l’utilisateur
totoast
Messages : 10
Inscription : 26 Mai 2017 18:25
Localisation : 459, Chemin Alfred Pelloux, La Bâtie - Saint Bernard du Touvet
Contact :

Re: Personnage qui glisse ( Jeu 2D )

Message par totoast » 28 Mai 2017 16:04

Axel74 a écrit :Ah tant mieux alors ! Ok si il se casse la figure comme tu dis, au lieu de modifier la rotation il faut que tu bloques la rotation de ton objet. Tu trouveras ceci dans le Rigidbody2D, contraints, freeze rotation.

Pour ton script, je t'invite à insister un peu plus sur les tutoriels pour comprendre un peu mieux ce que tu écris et approfondir un peu plus sur les possibilités de ces component de base. Ton problème devrait être résolu maintenant, bonne continuation avec ton projet !
Merci beaucoup ! J'ai fais ce que tu m'as dit et tout marche ! Merci merci merci !!! :-D :-D :-D
N'chaaa ! Bye'chaaa ! Bonjoirlut !

Répondre

Revenir vers « Unity le logiciel »