Noticias

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

Drag and Move

Iniciado por Bamf, Julio 03, 2015, 01:37:18 PM

Tema anterior - Siguiente tema
Hola buenas, tengo una duda.
 
Estoy en un proyecto de un "space invaders" y lo quiero sacar para android, hasta aquí todo bien, pero el problema es que quiero que al mantener la nave con el dedo esta se mueva a donde la arrastres.
 
He estado dando vueltas por la biblioteca de Unity3D, he intentado poner joysticks, etc. Pero no pude encontrar la solución.
¿Alguna ayuda? Os estaría muy agradecido.

es facil, pero debes poner si es una nave 3D o 2D sprites,
necesitaras una variable que guarde la posicion anterior del mouse al hacer click y mover tipo Vector3  y una bandera
 
//al presionar el mouse o tambien sirve para el touch
if (Input.GetMouseButtonDown(0)){
   posant = Input.mousePosition;
   bandera = true;
}
//al soltar
if (Input.GetMouseButtonUp(0)){
   bandera = false;
}
 
//al mover el mouse
if (click == true && Input.GetMouseButton(0) && posant!= Input.mousePosition){
   var dif = Input.mousePosition - posant;               // AQUI SE ACOMODA LA ECUACION DEPENDIENDO DE COMO TENGAS LAS COORDENADAS DEL JUEGO
   transform.position.Translate(dif, Space.World);  //AQUI TAMBIEN
   posant = Input.mousePosition;//actualizamos la nueva posicion
}
 
NOTA: Tambien lo puedes hacer con Input.touches pero ese seria otro codigo, lo que no me gusta de usar ese es la posibilidad de
haber pulsado varios dedos, pero igual te sirve
 

Cita de: jeico008 date=1435932515es facil, pero debes poner si es una nave 3D o 2D sprites,
necesitaras una variable que guarde la posicion anterior del mouse al hacer click y mover tipo Vector3  y una bandera
 
//al presionar el mouse o tambien sirve para el touch
if (Input.GetMouseButtonDown(0)){
   posant = Input.mousePosition;
   bandera = true;
}
//al soltar
if (Input.GetMouseButtonUp(0)){
   bandera = false;
}
 
//al mover el mouse
if (click == true && Input.GetMouseButton(0) && posant!= Input.mousePosition){
   var dif = Input.mousePosition - posant;               // AQUI SE ACOMODA LA ECUACION DEPENDIENDO DE COMO TENGAS LAS COORDENADAS DEL JUEGO
   transform.position.Translate(dif, Space.World);  //AQUI TAMBIEN
   posant = Input.mousePosition;//actualizamos la nueva posicion
}
 
NOTA: Tambien lo puedes hacer con Input.touches pero ese seria otro codigo, lo que no me gusta de usar ese es la posibilidad de
haber pulsado varios dedos, pero igual te sirve
Muchisimas gracias, se nota que tengo que seguir aprendiendo jaja.

Etiquetas: