cancel
Showing results for 
Search instead for 
Did you mean: 

How to take controller input in a 2d android app ?

butterchickenpaneer
Honored Guest

Basic events like touch is passed on 

onTouchEvent

but how to get event on pressing button and moving the joystick on 2d app porting it to meta quest ?

2 REPLIES 2

vivi.521
Protege

same

irpod2
Honored Guest

Just like on regular Android, you can override onGenericMotionEvent or setGenericMotionEventListener on your view to get most any sort of inputs passed to your app, and go from there. (Google's docs on it)

 

If you're using Jetpack Compose, you can also get access to these events with the Modifier.pointerInput modifier. Though I can't find any dedicated docs for controller inputs, you can use awaitPointerEventScope in the PointerInputScope to get an AwaitPointerEventScope in which you can call awaitPointerEvent and play around with that to find the capabilities you're looking for.

Modifier.pointerInput(myKey) {
  awaitPointerEventScope {
    val event = awaitPointerEvent()
    // Do stuff with event
  }
}