summaryrefslogtreecommitdiff
path: root/demos/viewport/gui_in_3d
diff options
context:
space:
mode:
Diffstat (limited to 'demos/viewport/gui_in_3d')
-rw-r--r--demos/viewport/gui_in_3d/gui.scnbin3267 -> 2579 bytes
-rw-r--r--demos/viewport/gui_in_3d/gui_3d.gd69
-rw-r--r--demos/viewport/gui_in_3d/gui_3d.scnbin4668 -> 6137 bytes
3 files changed, 31 insertions, 38 deletions
diff --git a/demos/viewport/gui_in_3d/gui.scn b/demos/viewport/gui_in_3d/gui.scn
index 5e8c04754e..d7daa30340 100644
--- a/demos/viewport/gui_in_3d/gui.scn
+++ b/demos/viewport/gui_in_3d/gui.scn
Binary files differ
diff --git a/demos/viewport/gui_in_3d/gui_3d.gd b/demos/viewport/gui_in_3d/gui_3d.gd
index c2a9df0069..8b9e352682 100644
--- a/demos/viewport/gui_in_3d/gui_3d.gd
+++ b/demos/viewport/gui_in_3d/gui_3d.gd
@@ -1,45 +1,38 @@
extends Spatial
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
-var prev_pos=null
-
-
-func _input( ev ):
- #all other (non-mouse) events
- if (not ev.type in [InputEvent.MOUSE_BUTTON,InputEvent.MOUSE_MOTION,InputEvent.SCREEN_DRAG,InputEvent.SCREEN_TOUCH]):
- get_node("viewport").input(ev)
-
-
-#mouse events for area
-func _on_area_input_event( camera, ev, click_pos, click_normal, shape_idx ):
-
- #use click pos (click in 3d space, convert to area space
- var pos = get_node("area").get_global_transform().affine_inverse() * click_pos
- #convert to 2D
- pos = Vector2(pos.x,pos.y)
- #convert to viewport coordinate system
- pos.x=(pos.x+1.5)*100
- pos.y=(-pos.y+0.75)*100
- #set to event
- ev.pos=pos
- ev.global_pos=pos
- if (prev_pos==null):
- prev_pos=pos
- if (ev.type==InputEvent.MOUSE_MOTION):
- ev.relative_pos=pos-prev_pos
- prev_pos=pos
-
- get_node("viewport").input(ev)
-
-
+# member variables
+var prev_pos = null
+
+
+func _input(event):
+ # all other (non-mouse) events
+ if (not event.type in [InputEvent.MOUSE_BUTTON, InputEvent.MOUSE_MOTION, InputEvent.SCREEN_DRAG, InputEvent.SCREEN_TOUCH]):
+ get_node("viewport").input(event)
+
+
+# mouse events for area
+func _on_area_input_event(camera, event, click_pos, click_normal, shape_idx):
+ # use click pos (click in 3d space, convert to area space)
+ var pos = get_node("area").get_global_transform().affine_inverse()*click_pos
+ # convert to 2D
+ pos = Vector2(pos.x, pos.y)
+ # convert to viewport coordinate system
+ pos.x = (pos.x + 1.5)*100
+ pos.y = (-pos.y + 0.75)*100
+ # set to event
+ event.pos = pos
+ event.global_pos = pos
+ if (prev_pos == null):
+ prev_pos = pos
+ if (event.type == InputEvent.MOUSE_MOTION):
+ event.relative_pos = pos - prev_pos
+ prev_pos = pos
+ # sned the event to the viewport
+ get_node("viewport").input(event)
+
func _ready():
# Initalization here
- get_node("area/quad").get_material_override().set_texture(FixedMaterial.PARAM_DIFFUSE, get_node("viewport").get_render_target_texture() )
+ get_node("area/quad").get_material_override().set_texture(FixedMaterial.PARAM_DIFFUSE, get_node("viewport").get_render_target_texture())
set_process_input(true)
- pass
-
diff --git a/demos/viewport/gui_in_3d/gui_3d.scn b/demos/viewport/gui_in_3d/gui_3d.scn
index c69d4dc73f..0541e7b142 100644
--- a/demos/viewport/gui_in_3d/gui_3d.scn
+++ b/demos/viewport/gui_in_3d/gui_3d.scn
Binary files differ