Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Billy en Mayo 24, 2016, 07:29:54 PM

Título: Ayuda con un script
Publicado por: Billy en Mayo 24, 2016, 07:29:54 PM
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 ) ;
    }
}

 

 
Título: Ayuda con un script
Publicado por: iRobb en Mayo 24, 2016, 08:07:28 PM
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.
Título: Ayuda con un script
Publicado por: Billy en Mayo 24, 2016, 08:19:57 PM
Gracias por tu respuesta pero lo he hecho y solo se me va ah la parte inferior de la pantalla.
 
 
Título: Ayuda con un script
Publicado por: iRobb en Mayo 24, 2016, 11:06:20 PM
Pon el código
Título: Ayuda con un script
Publicado por: Billy en Mayo 25, 2016, 06:09:13 AM
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 ;
    }
}


 
 
 
Título: Ayuda con un script
Publicado por: iRobb en Mayo 25, 2016, 09:37:11 AM
Esto que es?    mouselocation.y =   ;
 
No aparece nada. Aparte, si sobreescribes la y, pues no te cogerá los valores del mouse.
Título: Ayuda con un script
Publicado por: Ufita en Mayo 25, 2016, 09:39:30 AM



   
       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.