Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème jeu vidéo Unity

    13 décembre 2017 à 21:21:39

    Bonjour, 

    M'étant mis en quête de créer mon propre jeu vidéo, j'en suis arrivé à un problème lors du déplacement de mon personnage!

    J'ai mis en place dans mon script qui gère mon personnage un système de gravité pour qu'il reste au sol lorsqu'il passe des obstacles, le problème est que mon personnage se déplace mais flotte littéralement! Je n'arrive absolument pas à modifier cela et je ne pense pas que le problème vienne de mon script! Si certains d'entres vous,maîtrisez Unity, j'en appelle à votre savoir! ^^

    Quelques screens de ce qu'il se passe : 

    using UnityEngine;
    
    public class MoveCharacter : MonoBehaviour {
        //Public variables
        public float speed;
        public float speedRotate;
        public float gravity;
        public float speedRun;
    
        //Private variable
    
        private CharacterController controller;
        private Vector3 moveDirection;
        private float deltaTime;
        private Transform characterContent; 
        private bool walk;
        private bool run;
    
        
        // Use this for initialization
    	void Start () {
            controller = GetComponent("CharacterController") as CharacterController;
            characterContent = transform.Find("Perso1");
        }
    	
    	// Update is called once per frame
    	void Update () {
    
            //Cadence du temps
            deltaTime = Time.deltaTime;
    
            //Deplacements Haut/Bas
            if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)){
                moveDirection = new Vector3(0, 0, Input.GetAxis("Vertical") * speedRun);
                run = true;
                characterContent.GetComponent<Animation>().CrossFade("Run", 1);
            }
            else if(Input.GetAxis("Vertical")>0) {
                moveDirection = new Vector3(0, 0, Input.GetAxis("Vertical") * speed);
                walk = true;
                characterContent.GetComponent<Animation>().CrossFade("Walk", 1);
            }
           if (!Input.anyKey){
                walk = false;
                run = false;
           }
           if(!walk && !run){
                moveDirection = new Vector3(0, 0, 0);
                characterContent.GetComponent<Animation>().CrossFade("Idle");
            }
           //Changement axe local
           moveDirection = transform.TransformDirection(moveDirection);
    
           //Rotation du personnage
           transform.Rotate(new Vector3(0, Input.GetAxis("Horizontal") * deltaTime * speedRotate, 0));
    
            //Gravity
            moveDirection.y -= gravity;
    
    
            //Deplacement du Character Controller
            controller.Move(moveDirection * deltaTime);
        }
    }


    • Partager sur Facebook
    • Partager sur Twitter

    Problème jeu vidéo Unity

    × 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