Browse Source

Fix initial skin update timing in Skeleton3D

Silc Lizard (Tokage) Renew 10 months ago
parent
commit
d29e7b6953
2 changed files with 4 additions and 2 deletions
  1. 2 2
      scene/3d/mesh_instance_3d.cpp
  2. 2 0
      scene/3d/skeleton_3d.cpp

+ 2 - 2
scene/3d/mesh_instance_3d.cpp

@@ -332,8 +332,8 @@ void MeshInstance3D::create_multiple_convex_collisions(const Ref<MeshConvexDecom
 
 void MeshInstance3D::_notification(int p_what) {
 	switch (p_what) {
-		case NOTIFICATION_READY: {
-			callable_mp(this, &MeshInstance3D::_resolve_skeleton_path).call_deferred();
+		case NOTIFICATION_ENTER_TREE: {
+			_resolve_skeleton_path();
 		} break;
 		case NOTIFICATION_TRANSLATION_CHANGED: {
 			if (mesh.is_valid()) {

+ 2 - 0
scene/3d/skeleton_3d.cpp

@@ -324,6 +324,8 @@ void Skeleton3D::_notification(int p_what) {
 #ifndef DISABLE_DEPRECATED
 			setup_simulator();
 #endif // _DISABLE_DEPRECATED
+			update_flags = UPDATE_FLAG_POSE;
+			_notification(NOTIFICATION_UPDATE_SKELETON);
 		} break;
 		case NOTIFICATION_UPDATE_SKELETON: {
 			// Update bone transforms to apply unprocessed poses.