Problemas con "get player controller" y "Retriggerable Delay"

Hola gente, estoy teniendo un problema de flujo y necesitaba consultarles lo siguiente.

Programe el despliegue de un widget que se abre cuando presiono cualquiera de las 4 direcciones de la cruceta (imagen 1) y quiero que este cierre después de un tiempo cuando ya no se presionen mas (imagen 3), pero estoy teniendo un problema en medio (imagen 2).

Conectando el “Add to Viewport” al “set input game mode and ui”, este me permite navegar en el widget (imagen 4), pero al accionarse su PIN “get player controller” toma el control de la cruceta y desconecta el mando de los “Debug Key Gamepad” iniciales. Cuando pasa esto, aunque presiono los direccionales, estos no envían flujo de origen y no resetean el “Retriggerable Delay”, haciendo que inevitablemente el Widget desaparezca.

Si después del “set input game mode and ui” lo conecto al “Set input mode game only” y este ultimo activa su pin “get player controller”, el mando vuelve a conectarse a los “Debug Key Gamepad” iniciales, pudiendo resetear el “Retriggerable Delay”, ya que envían flujo de origen. Pero esto ocasiona que el mando se desconecte del widget y por lo tanto la navegación, dentro de la misma, desaparezca (imagen 5).

¿Existe alguna manera de combinar ambas formas?

desde ya muchas gracias, saludos

Hola @dosvdw como estas?

El problema es que los debug inputs no funcionan cuando cambias el input mode. En vez de utilizar los debug inputs (que ya de por si no van a funcionar en la version final del juego, ya que solo funcionan en development), la mejor solucion seria manejar todo desde Enhanced Input con las Input Actions correspondientes.

Podrias reiniciar ese retriggerable delay cada vez que se presiona la tecla/boton que quieras, y luego ejecutar toda la logica del widget tal como haces ahora sin ninguna preocupacion, ya que Enhanced Input funciona igual independientemente del input mode. Por lo tanto, el actor seguirá recibiendo los Input Actions sin problema.

Estas utilizando Enhanced Input para otras funciones actualmente? Necesitas mas ayuda para implementar el cambio que sugiero?

Quedo atento a tu respuesta por si necesitas mas ayuda!

Cree el “EnhancedInputAction IA_navegacion” que tiene programados los dpads, pero cuando el “set input game mode and ui” activa su pin “get player controller”, el “EnhancedInputAction IA_navegacion” pierde el control de los dpas.
Por lo cual, aunque presiono los dpas, y estos si responden a la navegación del widget, el pin “started” no envía señal de flujo para reiniciar el “Retrigreable delay”. El widget eventualemnte desaparece

Hola de nuevo @dosvdw

Es posible que me envies exactamente como esta armado el blueprint donde usas eso?

De preferencia me gustaria poder ver tambien el widget.

Quisiera poder replicar exactamente el flujo como lo armaste para encontrar el problema exacto y darte una solucion especifica ya pasada a blueprint real!

Quedo atento!

Encontré una alternativa a la solución que estaba buscando, pero me justaría poder aplicar el EnhanceInputAction que cree:

Resulta que si conecto el PIN “Released” de los “debug key gamepad” al “retriggerable delay”, esto si reinician el contador aunque el “controller” lo tenga el widget. Por lo cual, el blueprint me queda funcionando de la siguiente manera:

Cuándo el “get player controller” se activa en “set input game mode and ui” esto provoca que los “debug key gamepad” dejen de enviar flujo de origen a través de su pin “Pressed” aunque presiones los botones, pero esto no afecta al PIN “Released” que si sigue enviando señal al soltar el botón, a pesar de que el controlador lo tenga el widget (el motivo de por que, con uno si pero con otro no, lo desconozco)

Preferiría igualmente usar el “EnhanceInputAction IA_Navegacion que cree” pero este no envia señal de flujo cuando el “Get player controller” se activa en el “Set input mode game and UI”

¿Cual seria el problema en esta programación?