]> Untitled Git - william-skin.git/blobdiff - TrackingBone3D.gd
Added export config options for web, osx, windows, linux
[william-skin.git] / TrackingBone3D.gd
index 2f74d1493e4e05516e87c0d13c6247e36f6dbaa8..a417f61371feb51060bcbdfebae2995b47a3df23 100644 (file)
@@ -9,7 +9,7 @@ enum Axis {
 
 @export_enum(" ") var bone: String
 @export var aim_axis := Axis.Z_plus
-@export var target: Vector3 = Vector3(0, 0, 0)
+@export var target: Node3D = null
 
 var _skeleton: Skeleton3D
 var _bone_idx: int
@@ -32,6 +32,9 @@ func _ready() -> void:
        
 
 func _process_modification() -> void:
+       if target == null:
+               return
+
        var pose: Transform3D = _skeleton.global_transform * _skeleton.get_bone_global_pose(_bone_idx)
        var looked_at: Transform3D = _w_look_at(pose)
        
@@ -60,7 +63,7 @@ func _w_look_at(from: Transform3D) -> Transform3D:
        elif aim_axis == Axis.Z_minus:
                w = from.basis.y.inverse()
        
-       var t_v: Vector3 = target - from.origin
+       var t_v: Vector3 = target.global_position - from.origin
        var v_y: Vector3 = t_v.normalized()
        var v_z: Vector3 = w.cross(v_y)
        v_z = v_z.normalized()