Noticias

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

Ayuda con un script

Iniciado por Billy, Mayo 24, 2016, 07:29:54 PM

Tema anterior - Siguiente tema
Mayo 24, 2016, 07:29:54 PM Ultima modificación: Mayo 24, 2016, 09:15:30 PM por pioj
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.= 10 ;
        mouselocation.=   ;
        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.
 
 


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.  

Etiquetas: