Je débute sous unity, et je me lance dans un jeu avec un personnage animé type GTA.
J'ai mon script de déplacement qui fonctionne bien, mais j'ai un problème avec la souris.
Avec la touche Z, j'avance, et je joue l'animation de marche.
Avec la touche S, je recule et je joue l'anim de recul.
Tout ceci fonctionne très bien.
Mon soucis et lié au pivotement. J'ai modifié mon script pour que ce soit le mouvement de souris qui fasse tourner le personnage.
ça fonctionne, mais dans le jeu, je m'aperçoit qu'il me faut faire des grand mouvement de souris pour tourner complètement. De plus, vu que ma souris se déplace, au bout d'un moment, c'est très compliqué de se déplacer correctement.
Je me demandais comment figer la souris sur ma caméra, mais qu'elle puisse quand même pivoter.
Voici mon script :
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
// nom classe identique nom scripts
public class DeplacementPerso : MonoBehaviour
{
public float speed = 10.0f; // float nbr à virgules
public float speedRotation = 180.0f; // rotation
public float minToMove = 0.1f;
Animator anim;
float horizontalSpeed = 2.0f;
void Start()
{
anim = GetComponent<Animator>();
}
void Update()
{
float h = horizontalSpeed * Input.GetAxis("Mouse X");
transform.Rotate(0,h,0);
if (Input.GetKey(KeyCode.Z) == true)
{
anim.SetBool("walkplayer", true);
gameObject.transform.Translate(Vector3.forward * speed * Time.deltaTime, Space.Self);
}
else
anim.SetBool("walkplayer", false);
if (Input.GetKey(KeyCode.S) == true)
{
anim.SetBool("arriereplayer", true);
gameObject.transform.Translate(-Vector3.forward * speed * Time.deltaTime, Space.Self);
}
else
anim.SetBool("arriereplayer", false);
}
}