浏览代码

Reset when disabling override pose in BoneAttachment3D

Silc Lizard (Tokage) Renew 1 年之前
父节点
当前提交
c57a8114d4
共有 1 个文件被更改,包括 11 次插入0 次删除
  1. 11 0
      scene/3d/bone_attachment_3d.cpp

+ 11 - 0
scene/3d/bone_attachment_3d.cpp

@@ -239,9 +239,20 @@ int BoneAttachment3D::get_bone_idx() const {
 }
 
 void BoneAttachment3D::set_override_pose(bool p_override) {
+	if (override_pose == p_override) {
+		return;
+	}
+
 	override_pose = p_override;
 	set_notify_transform(override_pose);
 	set_process_internal(override_pose);
+	if (!override_pose && bone_idx >= 0) {
+		Skeleton3D *sk = _get_skeleton3d();
+		if (sk) {
+			sk->reset_bone_pose(bone_idx);
+		}
+	}
+
 	notify_property_list_changed();
 }