- Home /
Question by
DreamingWorld · Apr 29, 2016 at 07:37 PM ·
c#positionvector3ray
Raytrace Ignore the x axis ? Or Am I just a noob ? x')
Hi, I don't understand :'(, it only take into account one position :'( please, help !
private bool Drapeau = false;
private Vector3 PointDArrivee;
private float yAxis;
....
yAxis = Joueur.transform.position.y;
...
//La sa devient complexe. Pour les modifs de Vitesse et editer, regarde plutot "If IdDuPersonnage..."
if((Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began) || (Input.GetMouseButtonDown(0)))
//Verifie si l'écran est touché, cliqué.
{
//Declare une variable de type definition de projection 3D
RaycastHit hit;
//Cherche la Localisation d'aprés une projection 3D de l'écran
Ray ray;
//for unity editor
#if UNITY_EDITOR
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//for touch device
#elif (UNITY_ANDROID || UNITY_IPHONE || UNITY_WP8)
ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
#endif
//Regarde si il ne touche rien
if(Physics.Raycast(ray,out hit))
{
//Definie un drapeau
Drapeau = true;
//Sauvegarde La Position du click
PointDArrivee = hit.point;
PointDArrivee.y = yAxis;
Debug.Log(PointDArrivee);
}
}
//Regarde ou on as cliquer, et verifie si on est bien dans une autre position
if(Drapeau && !Mathf.Approximately(Joueur.transform.position.magnitude, PointDArrivee.magnitude)){ //T'occupe xD
//Bouge le joueur
Joueur.transform.position = Vector3.Lerp(Joueur.transform.position, PointDArrivee, 1/(Vitesse*(Vector3.Distance(Joueur.transform.position, PointDArrivee))));
}
//set the movement indicator Drapeau to false if the PointDArrivee and current gameobject position are equal
else if(Drapeau && Mathf.Approximately(Joueur.transform.position.magnitude, PointDArrivee.magnitude)) {
Drapeau = false;
Debug.Log("Je suis arrivé a distination.");
}
Thank you !!
Comment