Android app Interacción con GameObject

Eslas

Buenos días!

Tengo que hacer una aplicación para tablets android en el que se pueda interacturar con un objeto 3D (moverlo, girarlo, agregarle marcas, etc.), ya tengo hechas la scripts que me permitan moverlo y girarlo arrastrando con el dedo pero a la hora de juntarlo me veo con que claro el simple hecho de arrastrar hace que gire y que se mueva a la vez, me parece que no queda nada claro a la hora de usarlo.
Como lo solventariais?, yo había pensado en añadir un panel que permita elegir que movimiento quieres hacer, en plan ahora solo girar o ahora solo mover pero nose tampoco me convencen especialmente.

Alguna sugerencia?

La aplicación la desarrollo con Unity!

totespare

Usa Fingers, un asset para este tipo de cosas. @Hukha te puede asesorar más xD

1 respuesta
Eslas

#2 me la miro, thx!

murdokiler

#1 Podrías utilizar diferentes dedos, y también su distancia entre ellos. Con un dedo rotas, con dos dedos haces Pan, y acercando o alejando los dedos haces zoom. Para poner una marca podría ser un tap o doble tap, o una pulsación larga con el dedo sin mover de su posición.

Ya con eso puedes ir diferenciando, si solo está usando un dedo sabes que va a rotar, si detecta 2 dedos pues mides su distancia entre ellos, si están muy juntos y moviendo, está haciendo Pan, y si la distancia entre los dedos cambia está haciendo zoom. Después con el tiempo puedes detectar si solo son clicks o taps, y usarlo para marcas.

1
Hukha

No se exactamente que quieres hacer, pero si al arrastrar también rota, no creo que quede muy bien.
Mientras se arrastra le bloquearia los constraints. Si el dedo está sobre el objeto, lo arrastra, si el dedo empieza fuera del objeto, con movimientos circulares (o no) lo rota sobre si mismo.
Si quieres hacer zoom, la manera perfecta es como te han dicho con dos dedos.

Agregarle marcas con un tap y un hit.point debería servirte.
Si quieres un swipe para lo que sea, solo es mirar la distancia de un pan entre un frame y otro, esa distancia sería la velocidad, si es superior a X es swipe, si no, es un pan normal.

Por último, en referencia al Fingers (Asset) si necesitas hacer gestos personalizados con formas raras, para no tener que controlar y picar todo te facilita la vida, si lo que quieres es sólo arrastrar/rotar/clicar, no necesitas muchas de sus utilidades así que no lo recomiendo.

1 respuesta
Eslas

Perfect probare como me habeis dicho y a ver como queda

1 respuesta
Hukha

#6 Editado mi mensaje anterior con más info, por si acaso xD

Eslas

En principio es una utilidad dentro de un app mas grande la idea es para controles de calidad, por ejemplo una pieza grande pues la idea es que el que haga el control de calidad busque sobre la pieza real defectos/taras etc y marque en el modelo 3D donde esta el fallo, para que luego el que tenga que arreglarlo "tenga el trabajo mas faciil"

DiGuti

#5 Coincido con @Hukha, para mí lo ideal y lo que tenemos en mi curro en proyectos así es que cuando pones el dedo sobre el objeto lo puedes mover y si lo pones fuera lo rotas, y para hacer zoom con el pinch, como haces en tu día a día en la mayoría de apps. Y si el target que va a usar la app es gente poco tecnológica no tengas miedo a poner un botón con un icono de mover y otro de rotar.

1

Usuarios habituales

  • DiGuti
  • Eslas
  • Hukha
  • murdokiler
  • totespare