[RESOLU][DB-AL] CharacterController.move

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
gurvan
Messages : 14
Inscription : 28 Fév 2017 09:34

[RESOLU][DB-AL] CharacterController.move

Message par gurvan » 04 Mars 2017 07:27

Bonjour à tous,
Dans le cadre de mon projet platformer 2D mon personnage doit pouvoir comme bcp se déplacer de gauche à droite et sauter (entre autre, d'autres mouvements seront développés plus tard).
Après pas mal de tests j'ai décidé d'utiliser le charactercontroller pour animer mon personnage malgré l'utilisation du rigibody dans la majorité des tutoriels.
Hors j'ai un soucis, mon character réagit correctement aux inputs, mais impossible d'additioner les inputs !!
j'explique, lorsque j'appuis sur jump et ensuite une direction, je veux que mon personnage bouge tout en sautant par exemple, hors c'est pas le cas. Si je jump dans une direction, impossible de changer de direction en cours de jump aussi par exemple...
Je n'arrive pas à comprendre d'où peut venir le problème. Est-ce le CharacterController le soucis et il vaut mieux passer par le rigidbody?
Merci de m'aiguiller.

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CharacterMove : MonoBehaviour
{

    public float speed = 6.0F;
    public float jumpSpeed = 8.0F;
    public float gravity = 20.0F;
    private Vector2 moveDirection = Vector2.zero;
    void FixedUpdate()
    {
        CharacterController controller = GetComponent<CharacterController>();
        if (controller.isGrounded)
        {
            moveDirection = new Vector2(Input.GetAxis("Horizontal"), 0);
            moveDirection = transform.TransformDirection(moveDirection);
            moveDirection *= speed;
            if (Input.GetButton("Jump"))
                moveDirection.y = jumpSpeed;

        }
        moveDirection.y -= gravity * Time.deltaTime;
        controller.Move(moveDirection * Time.deltaTime);
    }
}
Dernière édition par gurvan le 07 Mars 2017 10:09, édité 1 fois.

gurvan
Messages : 14
Inscription : 28 Fév 2017 09:34

Re: [DB-AL] CharacterController.move

Message par gurvan » 04 Mars 2017 16:58

Laissez tomber en parcourant les forum unity offi je me suis rendu compte que de toute façon le character controller ne pourrait convenir à mes besoins... trop bugués à première vue.
Je vais donc me débrouiller avec un rigidbody.

Répondre

Revenir vers « (C#) CSharp »