implement movable entities

This commit is contained in:
Nitwel 2023-11-06 15:39:53 +01:00
parent c2e37bc8d8
commit 6985c7585d
7 changed files with 19 additions and 34 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:065527a0fe822f47a1f45bed61a0dcca10f73004f9c012fb3539021ca6bd2fbd
size 2451944
oid sha256:034fb07ad84872c283141a5f2ae34989b349cdf77328cab5458a9263f58e4967
size 2984138

View File

@ -1,6 +1,7 @@
[gd_scene load_steps=3 format=3 uid="uid://xsiy71rsqulj"]
[gd_scene load_steps=4 format=3 uid="uid://xsiy71rsqulj"]
[ext_resource type="Script" path="res://content/entities/sensor/sensor.gd" id="1_57ac8"]
[ext_resource type="Script" path="res://content/functions/movable.gd" id="2_fpq5q"]
[sub_resource type="SphereShape3D" id="SphereShape3D_r20gc"]
radius = 0.1
@ -13,3 +14,6 @@ shape = SubResource("SphereShape3D_r20gc")
[node name="Label" type="Label3D" parent="."]
text = "some text"
[node name="Movable" type="Node" parent="."]
script = ExtResource("2_fpq5q")

View File

@ -1,8 +1,9 @@
[gd_scene load_steps=6 format=3 uid="uid://cscl5k7lhopj5"]
[gd_scene load_steps=7 format=3 uid="uid://cscl5k7lhopj5"]
[ext_resource type="Script" path="res://content/entities/switch/switch.gd" id="1_8ffhi"]
[ext_resource type="Texture2D" uid="uid://b72vsbcvqqxg7" path="res://assets/materials/swich_on.png" id="1_w68gw"]
[ext_resource type="Texture2D" uid="uid://cvc0o6dsktnvl" path="res://assets/materials/switch_off.png" id="2_86ba1"]
[ext_resource type="Script" path="res://content/functions/movable.gd" id="4_6xr03"]
[sub_resource type="SphereShape3D" id="SphereShape3D_ukj14"]
radius = 0.1
@ -31,3 +32,6 @@ shape = SubResource("SphereShape3D_ukj14")
pixel_size = 0.0005
billboard = 1
sprite_frames = SubResource("SpriteFrames_ldpuo")
[node name="Movable" type="Node" parent="."]
script = ExtResource("4_6xr03")

View File

@ -2,33 +2,15 @@
extends Function
class_name Movable
var start_pos:Vector3
var start_rot:Vector3
var grab_pos:Vector3
var grab_rot:Vector3
var hit_node := Node3D.new()
func _on_grab_down(event):
print("grab down movable")
start_pos = get_parent().position
start_rot = get_parent().rotation
grab_pos = event.controller.position
grab_rot = event.controller.rotation
event.controller.add_child(hit_node)
hit_node.global_position = get_parent().global_position
func _on_grab_move(event):
print("grab move movable")
var delta_pos = event.controller.position - grab_pos
var delta_rot = event.controller.rotation - grab_rot
print(delta_pos, delta_rot)
get_parent().position = start_pos + delta_pos
get_parent().rotation = start_rot + delta_rot
func _on_grab_up(event):
print("grab up movable")
get_parent().global_position = hit_node.global_position
get_parent().global_rotation = hit_node.global_rotation
func _get_configuration_warnings() -> PackedStringArray:
var warnings := PackedStringArray()

View File

@ -57,7 +57,7 @@ script = ExtResource("1_tsqxc")
ray = NodePath("RayCast3D")
[node name="RayCast3D" type="RayCast3D" parent="XROrigin3D/XRControllerRight/Raycast"]
transform = Transform3D(1.91069e-15, 4.37114e-08, 1, 1, -4.37114e-08, 0, 4.37114e-08, 1, -4.37114e-08, 0, 0, 0)
transform = Transform3D(-2.58078e-11, 4.3714e-08, 1, 1, -4.37117e-08, 9.27469e-12, 4.37112e-08, 1, -4.3714e-08, 0, 0, 0)
target_position = Vector3(0, -5, 0)
[node name="StartXR" parent="." instance=ExtResource("1_i4c04")]

View File

@ -31,8 +31,6 @@ func _handle_move():
var distance = ray.get_collision_point().distance_to(_click_point)
var collider = ray.get_collider()
print(distance)
if distance > 0.02:
if _is_pressed:
_call_fn(collider, "_on_press_move")
@ -94,7 +92,5 @@ func _call_fn(collider: Object, fn_name: String):
collider.call(fn_name, _get_event_data())
for child in collider.get_children():
print("child", child)
if child is Function:
print("child is function!")
_call_fn(child, fn_name)

View File

@ -31,7 +31,6 @@ renderer/rendering_method="mobile"
textures/vram_compression/import_etc2_astc=true
lights_and_shadows/directional_shadow/soft_shadow_filter_quality=4
lights_and_shadows/directional_shadow/soft_shadow_filter_quality.mobile=4
anti_aliasing/quality/msaa_3d=2
[xr]