Partage
  • Partager sur Facebook
  • Partager sur Twitter

Unity 3D Animation d'un personnage (golem)

    14 juillet 2015 à 23:53:32

    Bonjour à tous ! 

    Alors voilà mon problème, j'ai un souci au niveau de l'animation de mon golem, après plusieurs recherche sur internet je n'ai pas réussi à trouver le problème, je viens donc vous voir ici même car j'ai besoin de votre aide. Help pliz :'(

    Voici le code : 

    #pragma strict
     
    //public variables
    var speed:float;
    var speedRun:float;
    var speedRotate:float;
    var gravity:float;
     
    //private variables
    private var controller:CharacterController;
    private var moveDirection:Vector3;
    private var deltaTime:float;
    private var characterContent:Transform;
    private var walk:boolean;
    private var run:boolean;
     
    function Start () {
     
        controller = GetComponent("CharacterController");
        characterContent = transform.Find("Perso");
    }
     
    function Update () {
     
        //Cadence du temps
        deltaTime = Time.deltaTime;
     
        //Deplacements Haut/bas
        if(Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)){
            moveDirection = Vector3(0,0,Input.GetAxis("Vertical") * speedRun);
            run = true;
        }
        else{
            moveDirection = Vector3(0,0,Input.GetAxis("Vertical") * speed);
            walk = true;
        }
        if(Input.anyKey){
            walk = false;
            run = false;
        }
        if (!walk && !run) {
            characterContent.GetComponent(Animation).CrossFade("idle", 0.2);
        } else if(walk) {
            characterContent.GetComponent(Animation).CrossFade("walk", 0.2);
        } else if (run) {
            characterContent.GetComponent(Animation).CrossFade("run", 0.2);
        }
         
        moveDirection = transform.TransformDirection(moveDirection);
         
        //rotation du personnage
        transform.Rotate(Vector3(0,Input.GetAxis("Horizontal") * speedRotate * deltaTime,0));
         
        //Gravity
        moveDirection.y -= gravity;
         
        //Deplacement du Character Controller
        controller.Move(moveDirection * deltaTime);
     
    }
    



    Ensuite le screenshot : 

    Et voici mon petit souci il ne recrée aucune des animations mise en place.

    Merci d'avance pour vos réponses.

    • Partager sur Facebook
    • Partager sur Twitter

    Veni vidi vici

      28 juillet 2015 à 13:36:38

      je croie que tu devrait faire :
      if(!Input.anyKey)

      dans la ligne 37

      bon courage :D

      • Partager sur Facebook
      • Partager sur Twitter
        14 août 2015 à 3:26:07

        samouusthb a écrit:

        je croie que tu devrait faire :

        if(!Input.anyKey)

        dans la ligne 37

        bon courage :D


        Merci, désolé de répondre que maintenant ^^
        • Partager sur Facebook
        • Partager sur Twitter

        Veni vidi vici

          4 octobre 2015 à 16:23:14

          Salut jai suivit le même tuto et tout et je me retrouve avec le même problème ,bien que jai compris le code (depuis le temps que je recherche une solution) il me parait plutôt logique mais malheureusement , je ne connait pas tout pour trouver la solution si quelqu'un peut m'aider merci.(désoler pour la mise en page )

          //Plublic variable

          var speed:float;

          var speedRun:float;

          var speedRotate:float;

          var gravity:float;

          var jumpSpeed:float;

          // Private Variable

          private var controller:CharacterController;

          private var moveDirection:Vector3;

          private var deltaTime:float;

          private var characterContent;

          private var runAnim:boolean;

          function Start () {

          controller = GetComponent("CharacterController");

          characterContent = transform.Find ("Perso");

          }

          function Update () {

          // Cadence du Temps

          deltaTime = Time.deltaTime;

          // On ne cours pas

          runAnim=false;

          if(controller.isGrounded){

          // Déplacement Haut/Bas

          if(Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)){

          moveDirection = Vector3(0,0,Input.GetAxis("Vertical") * speedRun);

          runAnim = true;

          }else{

          moveDirection = Vector3(0,0,Input.GetAxis("Vertical") * speed);

          }

          //gestion de lannimation

          if(Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.DownArrow)){

          //si on ne cour pas

          if (!runAnim){

          characterContent.GetComponent(Animation).CrossFade("idle",0.2);

          }else{

          characterContent.GetComponent(Animation).CrossFade("walk", 0.2);

          }

          }else{

          characterContent.GetComponent(Animation).CrossFade("run",0.2);

          }

          if(Input.GetKey(KeyCode.Space)){

          moveDirection.y = jumpSpeed;

          characterContent.GetComponent(Animation).CrossFade("jump", 0.2);

          }

          }

          //changer sur l'axe local 

          moveDirection = transform.TransformDirection(moveDirection);

          //Rotation du personnage

          transform.Rotate(Vector3(0,Input.GetAxis("Horizontal") * speedRotate * deltaTime,0));

          //gavité

          moveDirection.y -= gravity * deltaTime;

          //deplacement du character controller

          controller.Move(moveDirection * deltaTime);

          }

          -
          Edité par thomasjuan 4 octobre 2015 à 16:24:25

          • Partager sur Facebook
          • Partager sur Twitter

          Unity 3D Animation d'un personnage (golem)

          × 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