Voila la situation :
Débutant parmi les débutant, je commence mon apprentissage avec Unity avec un très modeste projet, un jeux de plateforme 2D pour mobiles en m'étant inspiré comme beaucoup de nombreux tutoriels (Madin83, 3DBuzz ...).
Cela fait un mois que je galère pour arriver à un résultat convenable, sans succès.
Le problème est que je n'arrive pas à faire se déplacer mon Player de façon fluide, il y a toujours des lags et c'est assez frustrant de buter sur quelque chose qui me semblait assez simple a la base.
Pour tenter de remédier à ça j'ai essayé toute les methodes de déplacement d'objet que j'ai trouvé :
Je place ici la partie du code utilisé pour les déplacements, la fonction Move qui est appelée par un autre script de mon PLAYER (si vous voulez voir l'intégralité DU SCRIPT dites le moi, je ne voulais pas surcharger le post) :
Code : Tout sélectionner
public void Move(float recupAxisJoystick, bool jump)
{
// si player regarde a droite et que l'on va a gauche on flip
if (recupAxisJoystick < 0 && mon_Player_FacingRight)
FlipPlayer ();
else {
// si player ne regarde pas a droite et que l'on va a droite on flip
if (recupAxisJoystick > 0 && !mon_Player_FacingRight)
FlipPlayer();
}
// on avance si mon_PlayerPeutAvancer est true
if (mon_PlayerPeutAvancer)
{
if ( Mathf.Abs (recupAxisJoystick) > 0.5f)
{
// sens determine si on va a gauche ou a droite (-1 a gauche, et 1 a droite)
float sens = (recupAxisJoystick / Mathf.Abs (recupAxisJoystick));
// deplacement de mon player en utilisant Velocity
//mon_Rigidbody2D.velocity = new Vector2 ( sens * mon_MaxSpeed * dTime * 44f , mon_Rigidbody2D.velocity.y);
// avec Position de mon Rigidody
//mon_Rigidbody2D.position = new Vector2 (mon_Rigidbody2D.position.x + (/*recupAxisJoystick **/ sens * mon_MaxSpeed * Time.deltaTime * 0.2f) , mon_Rigidbody2D.position.y);
// avec AddForce
//mon_Rigidbody2D.AddForce(new Vector2(sens * mon_MaxSpeed * 3f, 0f));
// avec position de mon transform
//transform.position = new Vector2 (transform.position.x + ( mon_MaxSpeed * 0.01f * sens) , mon_Rigidbody2D.position.y);
//avec un lerp:
Vector3 directionX = new Vector3 (transform.position.x + (sens) , transform.position.y, transform.position.z);
//transform.position = Vector3.Lerp (transform.position, directionX, Time.deltaTime * mon_MaxSpeed);
// avec un MoveTowards
transform.position = Vector3.MoveTowards (transform.position, directionX, dTime * mon_MaxSpeed);
}
}
C'est le cas sur mon ordi quand je lance projet, sur mon Galaxy Mega, et aussi sur l'ordi quand je switch mon projet en version pour mac
(j'ai un Macbook Pro retina 15 i7, 16Go avec CG et 512Go de SSD, donc ce n'est pas un manque de performance de ma machine)
je ne devrais peut être pas mais quand je télécharge sur mon iPhone 5 des jeux réalisés avec Unity, je ne peux m'empêcher de comparer la fluidité et là c'est le jour et la nuit, alors que mon projet est bien surchargé !!!
Bon je m'arrête la car ça commence à faire long pour un seul post pour un problème qui va surement vous paraitre enfantin.
Merci d'avance pour vos lumières.