je préviens que je suis débutant, et que surement ma question vous semblera bête, désolé d'avance.
Mon problème est le suivant : lors de la création d'un petit script pour déplacer mon personnage, j'ai remarqué un soucis lors de l'utilisation de celui-ci. Je m'explique, le déplacement ne se fait que par rapport à un axe X, Y ,Z, mais celui ci n'est jamais différent et ne me permet pas de déplacer librement(même si j'ajoute une rotation à mon props).Je me sens un peu coincé dans un repaire, comme si mon personnage ne voulait pas suivre la direction qu'il regarde. Ce qui amène ma question, comment peut-on faire pour que le personnage se déplace dans la direction que le props regarde (flèche bleu, axeZ) ?
Mon script:
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class controllerVisitor : MonoBehaviour {
public GameObject cubevisitor;
public float speed = 0.001f;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
checkKeys();
}
void checkKeys() {
if(Input.GetKey(KeyCode.W)){
transform.position += Vector3.forward * speed;
}
if(Input.GetKey(KeyCode.S)){
transform.position += Vector3.back * speed;
}
if(Input.GetKey(KeyCode.A)){
transform.position += Vector3.left * speed;
}
if(Input.GetKey(KeyCode.D)){
transform.position+= Vector3.right * speed;
}
}
}
Une explication un peu plus imagé :
Position 0 ( aucune action ) :
Position 1 (appuie sur la touche avancé, qui entraine un mouvement vers le Z de l'axe global)
le déplacement ne se fait pas en rapport avec la direction du props, je comprend le problème mais la résolution est juste compliqué pour mes débuts
Merci de vos réponse par avance!