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);
}
}