Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Comprobación de X en un objeto

Iniciado por chetuu16, Mayo 06, 2016, 11:29:33 AM

Tema anterior - Siguiente tema
Hola, soy novato en este mundillo asi que me perdonais si digo o hago alguna barbaridad using UnityEngine;
using System.Collections;

public class MovimientoMalo : MonoBehaviour {

//__________Variables__________
public Vector3 velIzq;
public Vector3 sitioDetencion;
public Vector3 velDetenido;


// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {
   
   //Movimiento hacia la izquierda (depende del valor en X que pongamos en velIzq)
   this.transform.position = this.transform.position + (velIzq*Time.deltaTime);

   /*Comprueba la X, la Y y la Z del transform y
   si coincide con la X, la Y y la Z de velDetenido
   el valor de X en velIzq se pone a 0 */
   if (this.transform.position == sitioDetencion){

      velIzq = velDetenido;

   } 

El problema es que estás comprobando valores en coma flotante como si fueran valores enteros. No solamente tienes un problema con la precisión, sino que además igual, igual, igual es prácticamente imposible que lo sean nunca. Tienes que comprobar valores aproximados o mejor utilizar la distancia entre vectores. No tienes porqué tirar de libros de texto, utiliza vector3.distance para conocer la distancia y si es menor a un valor pues detienes el vehículo.


Etiquetas: