Buenas tardes, tengo un proyecto escolar en 2D. el cual quiero lograr que con el mouse se mueva en el eje X de izq. a der y en el eje y salte. No he logrado mucho ya que no soy experto en programación, mi código tiene fallos he logrado moverme por eje x pero mi sprite tiene un comportamiento extraño y comienza a moverse solo....
esto es lo que he echo hasta ahora.
serian tan amables de ayudarme y ver que esta mal por favor.. Gracias de antemano
using UnityEngine;
using System.Collections;
public class Cell : MonoBehaviour {
public Camera cam;
public Vector3 mouselocation ;
public float speed ;
private Vector3 direction ;
void Start ()
{
// if ourCamera is null then set the Main Camera to the variable ourCamera
if (!cam)
{
cam = Camera.main ;
}
}
// Update is called once per frame
void Update ()
{
mouselocation = Input.mousePosition ;
mouselocation.z = 10 ;
mouselocation.y = ;
direction = cam.ScreenToWorldPoint( mouselocation ) ;
transform.position = Vector3.MoveTowards(transform.position , direction , speed * Time.deltaTime ) ;
}
}
Se mueve solo porqué se lo dices tú en transform.position con MoveTowards.
Si quieres que se mueva solamente con el mouse y no en el tiempo, transform.position = direction creo que te debería funcionar. Ahora bien, tampoco sobreescribas los valores de mouse.position o no va a tener sentido.
Gracias por tu respuesta pero lo he hecho y solo se me va ah la parte inferior de la pantalla.
Pon el código
using UnityEngine;
using System.Collections;
public class Cell : MonoBehaviour {
public Camera cam;
public Vector3 mouselocation ;
public float speed ;
private Vector3 direction ;
void Start ()
{
// if ourCamera is null then set the Main Camera to the variable ourCamera
if (!cam)
{
cam = Camera.main ;
}
}
// Update is called once per frame
void Update ()
{
mouselocation = Input.mousePosition ;
mouselocation.z = 10 ;
mouselocation.y = ;
direction = cam.ScreenToWorldPoint( mouselocation ) ;
transform.position = direction ;
}
}
Esto que es? mouselocation.y = ;
No aparece nada. Aparte, si sobreescribes la y, pues no te cogerá los valores del mouse.
mouselocation = Input.mousePosition ;
mouselocation.z = 10 ;
mouselocation.y = ;
direction = cam.ScreenToWorldPoint( mouselocation ) ;
transform.position = direction ;
[/quote]
Si pones mouselocation.z = 10 estás diciendo que ponga 10 ahí, de nada te sirve preguntar antes por la position del mouse.
Deberías trabajar directamente con el valor obtenido en mouselocation = Input.mousePosition ; así sabrás donde está el puntero del ratón.