Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MoveCharacter : MonoBehaviour {
//Variables publiques
public float Speed;
public float SpeedRun;
public float SpeedRotate;
public float Gravite;
//Variables privées
private CharacterController Controller;
private Vector3 moveDirection;
private float deltaTime;
private bool walk;
private bool run;
private GameObject CharacterContenu;
void Start () {
Controller = GetComponent<CharacterController>();
CharacterContenu = transform.Find("Perso").gameObject;
CharacterContenu = GetComponent<GameObject>();
}
void Update () {
//Cadence
deltaTime = Time.deltaTime;
//Déplacements haut et bas. getAxis vertical nous combine les flèches du haut et celles du bas.
if(Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift))
{
moveDirection = new Vector3(0, 0, Input.GetAxis("Vertical") * SpeedRun);
run = true;
}
else
{
moveDirection = new Vector3(0, 0, Input.GetAxis("Vertical") * Speed);
walk = true;
}
if (!Input.anyKey)
{
walk = false;
run = false;
}
// ******************
if (!walk && !run)
{
CharacterContenu.CrossFade("idle");
}
else if (walk)
{
CharacterContenu.animation.CrossFade("walk", 0.2);
}
else if (run)
{
CharacterContenu.animation.CrossFade("run", 0.2);
}
moveDirection = transform.TransformDirection(moveDirection);
//Rotation du personnage
transform.Rotate(new Vector3(0, Input.GetAxis("Horizontal") * SpeedRotate * deltaTime, 0));
//Gravité
moveDirection.y -= Gravite;
//Déplacement du CharacterController
Controller.Move(moveDirection * deltaTime);
}
}
J'ai un problème sur la partie après la ligne "crossfade", je ne voit pas comment faire jouer mes animations avec le CrossFade, ou plutôt je n'arrive pas à utiliser le "Crossfade"... Si quelqu'un peut m'aider ca serait vraiment super ^^