added vr player again

This commit is contained in:
Snorre 2025-04-05 03:29:51 +02:00
parent 9beee62eed
commit 1b363ec6a2
2 changed files with 47 additions and 52 deletions

View file

@ -1,7 +1,7 @@
[gd_scene load_steps=9 format=3 uid="uid://din25343yu8wv"] [gd_scene load_steps=9 format=3 uid="uid://din25343yu8wv"]
[ext_resource type="PackedScene" uid="uid://csh2n73hb2co8" path="res://models/banana.fbx" id="2_bl13t"] [ext_resource type="PackedScene" uid="uid://csh2n73hb2co8" path="res://models/banana.fbx" id="2_bl13t"]
[ext_resource type="Script" uid="uid://deiup1osipi8a" path="res://scripts/OverlapTester.cs" id="2_iyx0m"] [ext_resource type="PackedScene" uid="uid://8fmy7u5fyonc" path="res://resources/player.tscn" id="2_iyx0m"]
[sub_resource type="FastNoiseLite" id="FastNoiseLite_bl13t"] [sub_resource type="FastNoiseLite" id="FastNoiseLite_bl13t"]
@ -46,9 +46,4 @@ shape = SubResource("CapsuleShape3D_74lek")
transform = Transform3D(1, 0, 0, 0, -0.837394, -0.546599, 0, 0.546599, -0.837394, 0, 0.025557, -0.00612295) transform = Transform3D(1, 0, 0, 0, -0.837394, -0.546599, 0, 0.546599, -0.837394, 0, 0.025557, -0.00612295)
shape = SubResource("CapsuleShape3D_74lek") shape = SubResource("CapsuleShape3D_74lek")
[node name="Node3D" type="Node3D" parent="."] [node name="Player" parent="." instance=ExtResource("2_iyx0m")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.065958, 0, -0.366133)
script = ExtResource("2_iyx0m")
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.351838, 0.598454)

View file

@ -3,54 +3,54 @@ using System.Collections.Generic;
public partial class XRHand : XRController3D public partial class XRHand : XRController3D
{ {
List<Generic6DofJoint3D> joints = new(); List<Generic6DofJoint3D> joints = new();
[Export] [Export]
StaticBody3D body; StaticBody3D body;
[Export] [Export]
float strength = 1.0f; float strength = 1.0f;
public override void _Process(double delta) public override void _Process(double delta)
{ {
if ((bool)GetInput("trigger_click")) if ((bool)GetInput("trigger_click"))
{ {
var query = new PhysicsShapeQueryParameters3D(); var query = new PhysicsShapeQueryParameters3D();
var sphere = new SphereShape3D(); var sphere = new SphereShape3D();
sphere.Radius = 0.1f; sphere.Radius = 0.1f;
query.Shape = sphere; query.Shape = sphere;
query.CollideWithBodies = true; query.CollideWithBodies = true;
query.CollideWithAreas = false; query.CollideWithAreas = false;
query.Transform = ((Node3D)GetParent()).GlobalTransform; query.Transform = ((Node3D)GetParent()).GlobalTransform;
var overlaps = GetWorld3D().DirectSpaceState.IntersectShape(query); var overlaps = GetWorld3D().DirectSpaceState.IntersectShape(query);
foreach (var fuckingcollider in overlaps) foreach (var fuckingcollider in overlaps)
{ {
RigidBody3D body = null; RigidBody3D body = null;
try try
{ {
body = (RigidBody3D)fuckingcollider["collider"]; body = (RigidBody3D)fuckingcollider["collider"];
} }
catch (System.InvalidCastException) catch (System.InvalidCastException)
{ {
continue; continue;
} }
if (body.Mass > strength) { if (body.Mass > strength) {
continue; continue;
} }
Generic6DofJoint3D joint = new(); Generic6DofJoint3D joint = new();
joint.NodeA = GetPathTo(body); joint.NodeA = GetPathTo(body);
joint.NodeB = body.GetPath(); joint.NodeB = body.GetPath();
joints.Add(joint); joints.Add(joint);
AddChild(joint); AddChild(joint);
} }
} }
else if (joints.Count > 0) else if (joints.Count > 0)
{ {
foreach (var joint in joints) foreach (var joint in joints)
joint.QueueFree(); joint.QueueFree();
joints.Clear(); joints.Clear();
} }
} }
} }