Browse Source

Fix skeleton_3d & physical_bone_3d editor errors

Samuele Panzeri 2 years ago
parent
commit
679ff6da0e

+ 5 - 4
editor/plugins/physical_bone_3d_editor_plugin.cpp

@@ -96,8 +96,9 @@ void PhysicalBone3DEditorPlugin::make_visible(bool p_visible) {
 }
 
 void PhysicalBone3DEditorPlugin::edit(Object *p_node) {
-	selected = static_cast<PhysicalBone3D *>(p_node); // Trust it
-	ERR_FAIL_COND(!selected);
-
-	physical_bone_editor.set_selected(selected);
+	PhysicalBone3D *bone = Object::cast_to<PhysicalBone3D>(p_node);
+	if (bone) {
+		selected = bone;
+		physical_bone_editor.set_selected(selected);
+	}
 }

+ 1 - 3
editor/plugins/skeleton_3d_editor_plugin.cpp

@@ -832,8 +832,8 @@ void Skeleton3DEditor::create_editors() {
 void Skeleton3DEditor::_notification(int p_what) {
 	switch (p_what) {
 		case NOTIFICATION_ENTER_TREE: {
+			create_editors();
 			update_joint_tree();
-			update_editors();
 
 			joint_tree->connect("item_selected", callable_mp(this, &Skeleton3DEditor::_joint_tree_selection_changed));
 			joint_tree->connect("item_mouse_selected", callable_mp(this, &Skeleton3DEditor::_joint_tree_rmb_select));
@@ -946,8 +946,6 @@ void fragment() {
 	handles_mesh_instance->set_cast_shadows_setting(GeometryInstance3D::SHADOW_CASTING_SETTING_OFF);
 	handles_mesh.instantiate();
 	handles_mesh_instance->set_mesh(handles_mesh);
-
-	create_editors();
 }
 
 void Skeleton3DEditor::update_bone_original() {