skillless a écrit : ↑30 Juil 2018 13:20
j'ai enfin trouvé la solution
Quelques explications/infos/conseils en regardant ton code:
Code : Tout sélectionner
public class Dragon : MonoBehaviour {
public GameObject player;
Par convention, une classe, un type prennent une majuscule, et les variables des minuscules. (Ceci, n'est pas obligatoire, mais utile à la lecture et évite des erreurs bêtes)
Code : Tout sélectionner
public Vector3 position;
public GameObject player;
public GameObject redDragon;
Ceci sont des déclarations de variables. Elles ne sont utiles que si tu les utilises. position n'est jamais utilisé, il n'est pas utile de l'ajouter.
Aussi, l'objet sur lequel est associé le script et directement accessible depuis le code. Pas besoin de le passer en variable. Je suppose qu'ici, le script est mis sur le GameObject RedDragon. Dans ce cas tu peux l'appeler directement avec
this, sans le déclarer.
Code : Tout sélectionner
// Use this for initialization
void Start () {
Vector3 playerPosition = transform.position;
}
Ici, tu déclares une variable locale au sein de la fonction Start (). Elle sera détruite à la fin de l'exécution de cette fonction. Donc, elle ne sert à rien.
Code : Tout sélectionner
RedDragon.transform.position = new Vector3(transform.position.x, transform.position.y, Player.transform.position.z);
Ici, on voit nettement l'utilisation du
this, même s'il n'est pas écrit. En fait,
transform.position.x correspond à
this.transform.position.x, this étant facultatif. Si le script est sur RedDragon alors:
transform.position.x équivaut à
this.transform.position.x qui équivaut à
RedDragon.transform.position.x. Car à chaque fois tu accèdes la position x du Component Transform de l'objet qui possède ce script.
Voilà ce que donne ton code:
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Dragon : MonoBehaviour {
public GameObject player; //Ici, le player à renseigner dans l'Inspector
// Update is called once per frame
void Update () {
transform.position = new Vector3(transform.position.x, transform.position.y, player.transform.position.z);
}
}
Aussi, règle du forum: Lorsqu'un problème est résolu, merci de le préciser aux autres membres en éditant le premier message et ajoutant [RESOLU] en début de celui-ci. Je le fais cette fois-ci.