Android Swipe en Unity 3D World con AR

Estoy trabajando en una aplicación AR que usa Unity3D y Vuforia SDK para Android. La forma en que funciona la aplicación es cuando la camera reconoce la image designada (un marcador de cuadro en nuestro caso), y se representa una isla 3D en ese punto. Actualmente puedo detectar cuándo / qué objects son tocados en el model por raycasting. También puedo detectar con éxito un deslizamiento usando este código:

if (Input.touchCount > 0) { Touch touch = Input.touches[0]; switch (touch.phase) { case TouchPhase.Began: couldBeSwipe = true; startPos = touch.position; startTime = Time.time; break; case TouchPhase.Moved: if (Mathf.Abs(touch.position.y - startPos.y) > comfortZoneY) { couldBeSwipe = false; } //track points here for raycast if it is swipe break; case TouchPhase.Stationary: couldBeSwipe = false; break; case TouchPhase.Ended: float swipeTime = Time.time - startTime; float swipeDist = (touch.position - startPos).magnitude; if (couldBeSwipe && (swipeTime < maxSwipeTime) && (swipeDist > minSwipeDist)) { // It's a swiiiiiiiiiiiipe! float swipeDirection = Mathf.Sign(touch.position.y - startPos.y); // Do something here in reaction to the swipe. swipeCounter.IncrementCounter(); } break; } touchInfo.SetTouchInfo (Time.time-startTime,(touch.position-startPos).magnitude,Mathf.Abs (touch.position.y-startPos.y)); } 

Gracias a andeeeee por la lógica. Pero quiero tener algo de interacción en el mundo 3D en function del deslizamiento en la pantalla. IE Si el usuario pasa sobre enemigos no ocluidos, mueren. Mi primer pensamiento fue rastrear todos los puntos en la TouchFase movida, y luego si se trata de un golpe de rayos en todos esos puntos y matar a cualquier enemigo que sea golpeado. ¿Hay una mejor manera de hacer esto? ¿Cuál es el mejor enfoque?

¡Gracias por la ayuda!

Bueno, depende de cómo quieras matar a los enemigos. Si quieres matar cualquier cosa que hayas tocado al deslizar, debes hacer un raycast en cada fotogtwig en el que estés deslizando y registrar todos los hits en una list y luego matarlos a todos cuando se atesting el deslizamiento o realizar una medición de esfera desde la position de inicio hasta la position final . algo como esto 1- Al comienzo haz un raycast y encuentra el punto p1 en el suelo 2- al final haz otro raycast y encuentra el punto p2 en el suelo 3- Haz un lanzamiento de esfera desde p1 a p2. Esto es posible si no tienes cubiertas que quieras bloquear a enemigos entre la cubierta y tu camera.

El código de deslizamiento es un poco antipático, porque un poco de inactividad debería estar bien si no quieres solo golpes rápidos y también puedes hacerlo usando las llamadas a Input.GetMouseButtonX para que sea posible probarlo fácilmente en el editor y hacerlo plataforma cruzada.