Partage
  • Partager sur Facebook
  • Partager sur Twitter

Unity(2d): probleme de vitesse avec un sprite

Sujet résolu
    26 décembre 2017 à 17:58:55

    Bonsoir,
    je débute avec Unity et je travaille sur un projet de rpg vu du dessus en 2d.
    j'ai commencé par suivre une série de tuto (https://www.youtube.com/watch?v=Pk3GCgaNVTY&list=PLiyfvmtjWC_X6e0EYLPczO9tNCkm2dzkm)
    Mon problème est que après avoir changé l'échelle de taille d'une map importée depuis tiled avec Tiled2Unity, j'ai aussi changé la taille du sprite de mon perso pour qu'il correspond avec la map et depuis les déplacements de celui-ci sont beaucoup trop rapide :( 
    Si mon sujet n'est pas adapté a cette partie du forum, merci de de me prévenir. Je le déplacerai alors dans le forum indiqué (j'ai déjà poser cette question dans la partie "discussion jeux video" mais je n'ai pas eu de réponse).  :(  
    • Partager sur Facebook
    • Partager sur Twitter
      3 janvier 2018 à 11:01:23

      Alors j'ai pas prit le temps de regarder ton script (d'ailleur donne le pour de plus ample précision), mais dans un cas général tu choisis t'as vitesse en fonction d'une unité de temps, donner par le fonction time.deltaTime() qui retourne le temps écoulé entre chaque frame en seconde.

      IL te suffit ensuite de rajouté une variable publique exemple : public float vitesse;

      Puis pour ton déplacement ca donnera: transform.translate(Direction*time.deltaTime*Vitesse)

      (La propriété direction est un vecteur 2 ou 3)

      Il te suffira de toucher la vitesse directement dans l'interface qu'offre unity pour accelerer ou ralentir ton personnage, voila voila, en esperant avoir été utile

      • Partager sur Facebook
      • Partager sur Twitter
      L'humanité n'a pas lieu d'être quant on éprouve une honte a faire pare de cette espèce...Open mind lead to open doors
        3 janvier 2018 à 16:34:43

        Merci d'avoir répondu mais en faite j'ai trouvé hier d'ou venais le problème et j'ai oublié de passer ce sujet en "résolu".

        Mais merci quand même d'avoir pris le temps de me répondre :)

        • Partager sur Facebook
        • Partager sur Twitter
          4 janvier 2018 à 13:17:35

          De rien ^^

          Quand t'as trouver ta solution, hésite pas à donner la donner pour les suivant qui aurait le même problème et tomberais sur ce post =)

          • Partager sur Facebook
          • Partager sur Twitter
          L'humanité n'a pas lieu d'être quant on éprouve une honte a faire pare de cette espèce...Open mind lead to open doors
            5 janvier 2018 à 15:43:13

            Bonjour à tous :)

            Tenkai je suis vraiment preneur de la solution que tu as trouvée.

            J'ai suivi un autre tuto que le tien mais avec le même procédé (Tiled2Unity et changement taille sprite) et j'ai le même souci de vitesse mais mon perso va beaucoup trop lentement :D

            • Partager sur Facebook
            • Partager sur Twitter
              6 janvier 2018 à 11:53:59

              Salut, alors je ne suis pas tenkai mais je devrais pouvoir t'aider :
              Etape 1, créer une variable pour interagir depuis unity :

              public float vitesse;

              au début de ton script

              Etape 2, insère ton script pour ta direction, sauvegarde ton déplacement dans un Vector2 (ou Vector3 mais c'est à toi de gérer) appeler direction =)

              Etape 3 :

              C'est l'heure du déplacement :

              transform.Translate(Direction.normalized * vitesse * Time.deltaTime);

              /!\ Le ".normalized" est optionnel il te permet juste de normalisé t'as direction exemple : Le Vecteur (0,2) à la même direction que (0,3) et c'est deux vecteur normalisée te donnerons (0,1). Ca te permet de pas avoir de problème avec ta vitesse =)

              Etape 4 : retourne dans unity, attache le script à ton personnage, il y aura un paramètre appeler vitesse. Tu n'as plus qu'a le toucher pour régler ton allure =)

              Si t'as besoin de quoi que soit d'autre sur unity hésite pas, ca fais un moment que je suis dessus et malgré le fait que je suis très loin d'etre un expert, je commence à toucher ma bille

              • Partager sur Facebook
              • Partager sur Twitter
              L'humanité n'a pas lieu d'être quant on éprouve une honte a faire pare de cette espèce...Open mind lead to open doors
                27 juin 2018 à 21:46:02

                Désolé pour la réponse qui arrive TRES en retard mais je me suis remis que depuis peu à travailler sur mon projet sur Unity :)

                En fait le problème viens simplement du fait que j'ai oublié mettre le nombre de pixel ici:

                Du coup je me retrouvais avec un sprite et une map de taille complètement différentes l'un de l'autre.

                J'ai alors changé les tailles dans Unity et je me suis retrouvé avec un sprite qui se déplaçait beaucoup trop vite du fait que ses déplacement correspondait a une map de taille différente.

                j'ai résolu le problème en réimportant la map après avoir indiqué le nombre de pixel par unité :honte:

                • Partager sur Facebook
                • Partager sur Twitter

                Unity(2d): probleme de vitesse avec un sprite

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown