diff --git a/scenes/mockups/abandoned_street_3d.tscn b/scenes/mockups/abandoned_street_3d.tscn index 8129887..91e92c2 100644 --- a/scenes/mockups/abandoned_street_3d.tscn +++ b/scenes/mockups/abandoned_street_3d.tscn @@ -1261,7 +1261,7 @@ shaded = true texture = ExtResource("14_qxv15") [node name="InteractionArea" parent="semi_cat" instance=ExtResource("28_h5ibf")] -transform = Transform3D(2.875, 0, 0, 0, 2.875, 0, 0, 0, 2.875, 0, -1.698, 0) +transform = Transform3D(2.875, 0, 0, 0, 2.875, 0, 0, 0, 2.875, 0, -0.291344, 0.404458) [node name="Dialogic" type="Node" parent="semi_cat"] script = ExtResource("16_frq8l") diff --git a/scenes/props/interaction_area.tscn b/scenes/props/interaction_area.tscn index ecc7705..450fe20 100644 --- a/scenes/props/interaction_area.tscn +++ b/scenes/props/interaction_area.tscn @@ -9,8 +9,20 @@ radius = 1.0 script = ExtResource("1_26v5g") [node name="Area3D" type="Area3D" parent="."] -collision_layer = 0 collision_mask = 16 [node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D"] shape = SubResource("SphereShape3D_i8sim") + +[node name="Label3D" type="Label3D" parent="."] +sorting_offset = 100.0 +pixel_size = 0.001 +billboard = 1 +no_depth_test = true +fixed_size = true +text = "" +font_size = 98 +outline_size = 22 + +[connection signal="body_entered" from="Area3D" to="Label3D" method="show"] +[connection signal="body_exited" from="Area3D" to="Label3D" method="hide"] diff --git a/scripts/interaction_area.gd b/scripts/interaction_area.gd index 9e6c02c..e1f9d24 100644 --- a/scripts/interaction_area.gd +++ b/scripts/interaction_area.gd @@ -1,9 +1,16 @@ extends Node3D @onready var area_3d: Area3D = $Area3D +@onready var label_3d: Label3D = $Label3D signal interacted +func _process(delta: float) -> void: + if area_3d.has_overlapping_bodies(): + label_3d.show() + else: + label_3d.hide() + func _input(event: InputEvent) -> void: if event.is_action("interact") && event.is_pressed() && area_3d.has_overlapping_bodies(): interacted.emit()