// Create a custom input listener
val myInputListener = object : InputListener {
override fun onClick(receiver: SceneObject, hitInfo: HitInfo, sourceOfInput: Entity) {
// Handle click event
}
}
// Attach the input listener to the SceneObject
val sceneObject = systemManager.findSystem<SceneObjectSystem>().getSceneObject(entity)
sceneObject?.thenAccept { so ->
so.addInputListener(myInputListener)
}
interface InputListener
onClick
(
receiver
,
hitInfo
,
sourceOfInput
)
|
Called when a "click" is released while pointing at the object. This is a trigger release for controllers, and a pinch release for hands.
This method is invoked at the end of a click interaction, when the user releases a button that was pressed while pointing at the object. It's paired with InputListener.onClickDown, which is called when the button is initially pressed.
Signature
open fun onClick(receiver: SceneObject, hitInfo: HitInfo, sourceOfInput: Entity) Parameters
receiver:
SceneObject
hitInfo:
HitInfo
sourceOfInput:
Entity |
onClickDown
(
receiver
,
hitInfo
,
sourceOfInput
)
|
Called when a "clickDown" is processed while pointing at the object. This is a trigger press for controllers, and a pinch for hands.
This method is invoked at the start of a click interaction, when the user presses a button while the pointer is over the object. It's paired with InputListener.onClick, which is called when the "click" is released.
Signature
open fun onClickDown(receiver: SceneObject, hitInfo: HitInfo, sourceOfInput: Entity) Parameters
receiver:
SceneObject
hitInfo:
HitInfo
sourceOfInput:
Entity |
onHoverStart
(
receiver
,
sourceOfInput
)
|
Called when the pointer starts hovering over the object.
This method is invoked when a controller ray first enters the object's bounds. It's paired with InputListener.onHoverStop, which is called when the pointer leaves the object.
Signature
open fun onHoverStart(receiver: SceneObject, sourceOfInput: Entity) Parameters
receiver:
SceneObject
sourceOfInput:
Entity |
onHoverStop
(
receiver
,
sourceOfInput
)
|
Called when the pointer stops hovering over the object.
This method is invoked when a controller ray exits the object's bounds after previously hovering over it. It's paired with InputListener.onHoverStart, which is called when the pointer first enters the object.
Signature
open fun onHoverStop(receiver: SceneObject, sourceOfInput: Entity) Parameters
receiver:
SceneObject
sourceOfInput:
Entity |
onInput
(
receiver
,
hitInfo
,
sourceOfInput
,
changed
,
buttonState
,
downTime
)
:
Boolean
|
Called when any input event occurs on the object. It provides raw button state information through bit masks that can be interpreted using ButtonBits constants.
Hovering itself is considered an input event, but pressing and holding a button down will send input to the last focused object.
Signature
open fun onInput(receiver: SceneObject, hitInfo: HitInfo, sourceOfInput: Entity, changed: Int, buttonState: Int, downTime: Long): Boolean Parameters
receiver:
SceneObject
hitInfo:
HitInfo
sourceOfInput:
Entity
changed:
Int
buttonState:
Int
downTime:
Long
Returns
Boolean
|
onPointerEvent
(
receiver
,
hitInfo
,
type
,
sourceOfInput
,
scrollInfo
,
semanticType
)
|
Called for pointer events on the SceneObject.
Signature
open fun onPointerEvent(receiver: SceneObject, hitInfo: HitInfo, type: Int, sourceOfInput: Entity, scrollInfo: Vector2, semanticType: Int) Parameters
receiver:
SceneObject
hitInfo:
HitInfo
type:
Int
sourceOfInput:
Entity
scrollInfo:
Vector2
semanticType:
Int
|
stopInput
(
receiver
,
sourceOfInput
,
downTime
)
|
Called when input interaction with a SceneObject stops. This will be called once the controller stops hovering, or if a button is held down, when the button is released.
Signature
open fun stopInput(receiver: SceneObject, sourceOfInput: Entity, downTime: Long) Parameters
receiver:
SceneObject
sourceOfInput:
Entity
downTime:
Long
|