Noticias

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

Arrastrar con touch una camara isométrica

Iniciado por Bousing, Julio 07, 2017, 09:33:35 PM

Tema anterior - Siguiente tema
Julio 07, 2017, 09:33:35 PM Ultima modificación: Julio 07, 2017, 09:35:55 PM por Bousing
Saludos amigos
 
 Escribo porque tengo una duda. Necesito hacer un juego con una cámara isometrica como la de warcraft 3, age of empire, etc. Como el juego es para móviles necesito hacerla con touch.
 
 Mi estrategia es la siguiente, crear un GameObject y hacer que la cámara principal sea hijo de este objeto y programar una clase para que el GameOject que contiene a la camara se mueva con el dedo.
 
 
 
Yo hice este código:
 
 
 

//UN SOLO TOQUE PARA MOVER LA CÁMARA
  if (Input.touchCount == 1) {
   if (Input.GetTouch ().phase == TouchPhase.Began) {
                   
    worldStartPoint = getToque (Input.GetTouch ().position);
   }
   //CUANDO EL TOUCH ESTÁ EN MOVIMIENTO
   if(Input.GetTouch().phase == TouchPhase.Moved){
    //SE OBTIENEN LAS COORDENADAS DE LA NUEVA POSICIÓN
    Vector2 endPosition = getToque (Input.GetTouch ().position) - worldStartPoint;
    this.transform.Translate (endPosition.x,,endPosition.y);
   }
  }
 }
 
 //MÉTODO PARA CAPTURAR LA POSICIÓN EN LA PANTALLA DE UN TOQUE TÁCTIL
 private Vector2 getToque(Vector2 toque){
 
  RaycastHit hit;
  Physics.Raycast (Camera.main.ScreenPointToRay (toque), out hit);
  return hit.point;
 }

 
pero cuando hago la prueba con Unity Remote, solamente puedo mover el objeto en el eje X y no en el eje Z. A mi también me gustaría se pudiera mover fluido y corrido como en clash of clans que no es necesario despegar el dedo de la pantalla para seguir moviendolo. Alguén podría ayudarme ?. Muchísimas gracias por leer.

Este tema es interesante para muchos proyectos. Si alguien consigue solucionarlo, por favor marcad la Best Answer, que lo destacaremos en el foro.

Etiquetas: