.....
parent
adeb8fa272
commit
22112e11c7
|
|
@ -0,0 +1,37 @@
|
||||||
|
extends Node3D
|
||||||
|
|
||||||
|
# Referenz zur Tür (der RigidBody)
|
||||||
|
@export var door_rigidbody : RigidBody3D
|
||||||
|
|
||||||
|
# Referenz zur SnapZone (der "WheelSpace")
|
||||||
|
@export var wheel_snap_zone : XRToolsSnapZone
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
# Wir verbinden das Signal der SnapZone
|
||||||
|
if wheel_snap_zone:
|
||||||
|
# "has_picked_up" wird gefeuert, wenn die Zone ein Objekt fängt
|
||||||
|
wheel_snap_zone.has_picked_up.connect(_on_wheel_inserted)
|
||||||
|
|
||||||
|
# Optional: Wenn man das Rad wieder rausnimmt, soll die Tür wieder zu gehen?
|
||||||
|
# Dann aktiviere die nächste Zeile:
|
||||||
|
# wheel_snap_zone.has_dropped.connect(_on_wheel_removed)
|
||||||
|
|
||||||
|
# Sicherstellen, dass die Tür am Start zu ist
|
||||||
|
lock_door()
|
||||||
|
|
||||||
|
func _on_wheel_inserted(_object):
|
||||||
|
print("Rad eingesetzt! Tür wird entriegelt.")
|
||||||
|
unlock_door()
|
||||||
|
|
||||||
|
func _on_wheel_removed(_object):
|
||||||
|
print("Rad entfernt! Tür wird verriegelt.")
|
||||||
|
lock_door()
|
||||||
|
|
||||||
|
func unlock_door():
|
||||||
|
if door_rigidbody:
|
||||||
|
door_rigidbody.freeze = false # Physik an -> Tür beweglich
|
||||||
|
# Optional: Schlafeinschlafen verhindern
|
||||||
|
|
||||||
|
func lock_door():
|
||||||
|
if door_rigidbody:
|
||||||
|
door_rigidbody.freeze = true # Physik aus -> Tür fest wie eine Wand
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
uid://bynhdxidxy23t
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
[gd_scene load_steps=3 format=3 uid="uid://bckvyatytdncj"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c8l60rnugru40" path="res://addons/godot-xr-tools/objects/pickable.tscn" id="1_mpmja"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_kaqxa"]
|
||||||
|
size = Vector3(0.2, 0.2, 0.2)
|
||||||
|
|
||||||
|
[node name="DoorHandle" instance=ExtResource("1_mpmja")]
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="." index="0"]
|
||||||
|
shape = SubResource("BoxShape3D_kaqxa")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="1"]
|
||||||
|
|
@ -2,14 +2,14 @@
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://c31oleh3x06ku" path="res://addons/godot-xr-tools/objects/wheel_snap_zone.tscn" id="1_ttqdy"]
|
[ext_resource type="PackedScene" uid="uid://c31oleh3x06ku" path="res://addons/godot-xr-tools/objects/wheel_snap_zone.tscn" id="1_ttqdy"]
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0jfqd"]
|
|
||||||
albedo_color = Color(2.2862106e-07, 0.29880682, 0.29880682, 1)
|
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ttqdy"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ttqdy"]
|
||||||
albedo_color = Color(1.0829419e-06, 0.3589771, 0.3589772, 1)
|
albedo_color = Color(0.54901963, 0.58431375, 0.59607846, 1)
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qy0yp"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qy0yp"]
|
||||||
albedo_color = Color(0, 0.29803923, 0.29803923, 1)
|
albedo_color = Color(0.54901963, 0.58431375, 0.59607846, 1)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_v36v7"]
|
||||||
|
albedo_color = Color(0.54901963, 0.58431375, 0.59607846, 1)
|
||||||
|
|
||||||
[node name="WheelSpace" type="Node3D"]
|
[node name="WheelSpace" type="Node3D"]
|
||||||
|
|
||||||
|
|
@ -18,7 +18,7 @@ transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0
|
||||||
|
|
||||||
[node name="CSGBox3D" type="CSGBox3D" parent="CSGCombiner3D"]
|
[node name="CSGBox3D" type="CSGBox3D" parent="CSGCombiner3D"]
|
||||||
size = Vector3(0.35, 0.35, 0.15)
|
size = Vector3(0.35, 0.35, 0.15)
|
||||||
material = SubResource("StandardMaterial3D_0jfqd")
|
material = SubResource("StandardMaterial3D_ttqdy")
|
||||||
|
|
||||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="CSGCombiner3D"]
|
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="CSGCombiner3D"]
|
||||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0.059342176)
|
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0.059342176)
|
||||||
|
|
@ -26,14 +26,14 @@ operation = 2
|
||||||
radius = 0.105
|
radius = 0.105
|
||||||
height = 0.035
|
height = 0.035
|
||||||
sides = 60
|
sides = 60
|
||||||
material = SubResource("StandardMaterial3D_ttqdy")
|
material = SubResource("StandardMaterial3D_qy0yp")
|
||||||
|
|
||||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="CSGCombiner3D"]
|
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="CSGCombiner3D"]
|
||||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0.0604029)
|
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0.0604029)
|
||||||
radius = 0.012
|
radius = 0.012
|
||||||
height = 0.035
|
height = 0.035
|
||||||
sides = 60
|
sides = 60
|
||||||
material = SubResource("StandardMaterial3D_qy0yp")
|
material = SubResource("StandardMaterial3D_v36v7")
|
||||||
|
|
||||||
[node name="WheelSnapZone" parent="." instance=ExtResource("1_ttqdy")]
|
[node name="WheelSnapZone" parent="." instance=ExtResource("1_ttqdy")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.10869917, 0, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.10869917, 0, 0)
|
||||||
|
|
|
||||||
192
level.tscn
192
level.tscn
File diff suppressed because one or more lines are too long
|
|
@ -44,4 +44,4 @@ transform = Transform3D(0.00025759128, -0.0019833425, 0, 0.0018915471, 0.0002456
|
||||||
|
|
||||||
[node name="PlayerBody" parent="." instance=ExtResource("4_2hs0m")]
|
[node name="PlayerBody" parent="." instance=ExtResource("4_2hs0m")]
|
||||||
player_height_rate = 20.0
|
player_height_rate = 20.0
|
||||||
push_strength_factor = 5.0
|
head_behavior_mode = 2
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue