implement movable entities
This commit is contained in:
parent
c2e37bc8d8
commit
6985c7585d
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:065527a0fe822f47a1f45bed61a0dcca10f73004f9c012fb3539021ca6bd2fbd
|
||||
size 2451944
|
||||
oid sha256:034fb07ad84872c283141a5f2ae34989b349cdf77328cab5458a9263f58e4967
|
||||
size 2984138
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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()
|
||||
|
@ -37,4 +19,4 @@ func _get_configuration_warnings() -> PackedStringArray:
|
|||
warnings.append("Movable requires a StaticBody3D as parent.")
|
||||
|
||||
|
||||
return warnings
|
||||
return warnings
|
||||
|
|
|
@ -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")]
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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]
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user