You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Added XR tracking-state change signals
Add "pose_lost_tracking" signal to XRPositionalTracker. Add "tracking_changed" signal to XRNode3D.
This commit is contained in:
@@ -62,6 +62,7 @@ void XRPositionalTracker::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("invalidate_pose", "name"), &XRPositionalTracker::invalidate_pose);
|
||||
ClassDB::bind_method(D_METHOD("set_pose", "name", "transform", "linear_velocity", "angular_velocity", "tracking_confidence"), &XRPositionalTracker::set_pose);
|
||||
ADD_SIGNAL(MethodInfo("pose_changed", PropertyInfo(Variant::OBJECT, "pose", PROPERTY_HINT_RESOURCE_TYPE, "XRPose")));
|
||||
ADD_SIGNAL(MethodInfo("pose_lost_tracking", PropertyInfo(Variant::OBJECT, "pose", PROPERTY_HINT_RESOURCE_TYPE, "XRPose")));
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_input", "name"), &XRPositionalTracker::get_input);
|
||||
ClassDB::bind_method(D_METHOD("set_input", "name", "value"), &XRPositionalTracker::set_input);
|
||||
@@ -146,7 +147,10 @@ void XRPositionalTracker::invalidate_pose(const StringName &p_action_name) {
|
||||
// only update this if we were tracking this pose
|
||||
if (poses.has(p_action_name)) {
|
||||
// We just set tracking data as invalid, we leave our current transform and velocity data as is so controllers don't suddenly jump to origin.
|
||||
poses[p_action_name]->set_has_tracking_data(false);
|
||||
Ref<XRPose> pose = poses[p_action_name];
|
||||
pose->set_has_tracking_data(false);
|
||||
|
||||
emit_signal(SNAME("pose_lost_tracking"), pose);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user