Small improvements for Android

This commit is contained in:
rodolpheh 2023-11-07 23:30:21 +00:00
parent 671f5cae12
commit a21bb55d00
2 changed files with 24 additions and 14 deletions

View File

@ -4,16 +4,14 @@ extends Node3D
@export var rigged_hands : Node3D
@export var spawner : CubeSpawner
@export var cube_material : PhysicsMaterial
@export var xr : bool = true
var xr_interface: XRInterface
func _ready():
if not xr:
if not ProjectSettings.get_setting_with_override("xr/openxr/enabled"):
var player : Resource = load("res://scenes/Players/Player.tscn")
var player_node : Node3D = player.instantiate()
add_child(player_node)
return
xr_interface = XRServer.find_interface("OpenXR")
if xr_interface and xr_interface.is_initialized():

View File

@ -3,11 +3,11 @@ class_name OriginHands
@export var tracking : UltraleapDeviceNode
var gizmos : Array = []
var gizmos : Array[Node3D] = []
var dry_run : bool = false
func _ready():
var scene = preload("res://models/Origin.tscn")
var scene : PackedScene = preload("res://models/Origin.tscn")
dry_run = true
var n : int = set_hand(tracking.get_last_frame().left_hand, 0)
@ -17,7 +17,7 @@ func _ready():
print(str(n) + " bones")
for i in range(n):
var instance = scene.instantiate(PackedScene.GEN_EDIT_STATE_INSTANCE)
var instance : Node3D = scene.instantiate()
add_child(instance)
instance.owner = self
instance.name = "Joint" + str(i)
@ -51,20 +51,32 @@ func set_finger(finger_name : String, hand : UltraleapHand, index : int) -> int:
func set_bone(bone_name : String, finger : UltraleapDigit, index : int):
if dry_run:
return index + 1
var bone_transform : Transform3D = tracking.global_transform * Transform3D(
Basis(finger.get(bone_name).rotation),
finger.get(bone_name).prev_joint
)
gizmos[index].position = finger.get(bone_name).prev_joint
gizmos[index].rotation = finger.get(bone_name).rotation.get_euler()
gizmos[index].global_transform = bone_transform
return index + 1
func set_arm(hand : UltraleapHand, index : int) -> int:
if dry_run:
return index + 2
var arm : UltraleapBone = hand.arm
gizmos[index].position = arm.prev_joint
gizmos[index].rotation = arm.rotation.get_euler()
gizmos[index + 1].position = arm.next_joint
gizmos[index + 1].rotation = arm.rotation.get_euler()
var wrist_transform : Transform3D = tracking.global_transform * Transform3D(
Basis(arm.rotation),
arm.prev_joint
)
var elbow_transform : Transform3D = tracking.global_transform * Transform3D(
Basis(arm.rotation),
arm.next_joint
)
gizmos[index].global_transform = elbow_transform
gizmos[index + 1].global_transform = wrist_transform
return index + 2