From bde85e71242042a83030d73ab9b5bfa00c1a7315 Mon Sep 17 00:00:00 2001 From: Nitwel Date: Sat, 11 Nov 2023 18:25:59 +0100 Subject: [PATCH] update docs --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index a3dabfb..46fe4e9 100644 --- a/README.md +++ b/README.md @@ -80,11 +80,14 @@ func watch_state(entity: String, callback: Callable[entity: Entity]) -> Callable ### Interaction Events Each time a button is pressed on the primary controller, a ray-cast is done to be able to interact with devices or the UI. +Additionally, each event will bubble up until the root node is reached, allowing to handle events on parents. +In case that an event of a specific node has to be reacted on, use the `Clickable` function node. ```python InteractionEvent { "controller": XRController3D, # The controller that triggered the event "ray": RayCast3D, # The ray-cast that triggered the event + "target": Node3D, # The node that was hit by the ray-cast } ``` @@ -100,6 +103,18 @@ InteractionEvent { | `_on_ray_enter` | `[event: InteractionEvent]` | The ray-cast enters the the collision body | | `_on_ray_leave` | `[event: InteractionEvent]` | The ray-cast leaves the the collision body | +### Functions + +In order to implement generic features, a set of functions is available to be used in the project. + +#### Movable + +The `Movable` node allows to move a node around in the room. It uses the grab events in order to transform the parent node. + +#### Clickable + +The `Clickable` allows to access events of the parent using signals this node emits. + ### Testing without a VR Headset In order to test without a headset, press the run project (F5) button in Godot and ignore the prompt that OpenXR failed to start.