diff --git a/spine-godot/spine_godot/SpineBone.cpp b/spine-godot/spine_godot/SpineBone.cpp index a9fe2f4c0..87a7a2186 100644 --- a/spine-godot/spine_godot/SpineBone.cpp +++ b/spine-godot/spine_godot/SpineBone.cpp @@ -465,6 +465,7 @@ void SpineBone::set_transform(Transform2D transform) { Transform2D SpineBone::get_global_transform() { SPINE_CHECK(bone, Transform2D()) if (!sprite) return get_transform(); + if (!sprite->is_visible_in_tree()) return get_transform(); Transform2D local; local.rotate(Math::deg2rad(-get_world_rotation_x())); local.scale(Vector2(get_world_scale_x(), get_world_scale_y())); @@ -475,6 +476,7 @@ Transform2D SpineBone::get_global_transform() { void SpineBone::set_global_transform(Transform2D transform) { SPINE_CHECK(bone,) if (!sprite) set_transform(transform); + if (!sprite->is_visible_in_tree()) return; transform = sprite->get_global_transform().affine_inverse() * transform; Vector2 position = transform.get_origin(); position.y *= -1; diff --git a/spine-godot/spine_godot/SpineSlotNode.cpp b/spine-godot/spine_godot/SpineSlotNode.cpp index e30859a5c..bdd41f39c 100644 --- a/spine-godot/spine_godot/SpineSlotNode.cpp +++ b/spine-godot/spine_godot/SpineSlotNode.cpp @@ -95,6 +95,7 @@ void SpineSlotNode::update_transform(SpineSprite *sprite) { } auto bone = slot->get_bone(); if (!bone.is_valid()) return; + if (!is_visible_in_tree()) return; this->set_global_transform(bone->get_global_transform()); } diff --git a/spine-godot/spine_godot/SpineSprite.cpp b/spine-godot/spine_godot/SpineSprite.cpp index 032d7d54c..0b8ef8de3 100644 --- a/spine-godot/spine_godot/SpineSprite.cpp +++ b/spine-godot/spine_godot/SpineSprite.cpp @@ -480,9 +480,7 @@ void SpineSprite::callback(spine::AnimationState *state, spine::EventType type, } Transform2D SpineSprite::get_global_bone_transform(const String &bone_name) { - if (!animation_state.is_valid() && !skeleton.is_valid()) { - return get_global_transform(); - } + if (!animation_state.is_valid() && !skeleton.is_valid()) return get_global_transform(); auto bone = skeleton->find_bone(bone_name); if (!bone.is_valid()) { print_error(vformat("Bone: '%s' not found.", bone_name)); @@ -492,9 +490,7 @@ Transform2D SpineSprite::get_global_bone_transform(const String &bone_name) { } void SpineSprite::set_global_bone_transform(const String &bone_name, Transform2D transform) { - if (!animation_state.is_valid() && !skeleton.is_valid()) { - return; - } + if (!animation_state.is_valid() && !skeleton.is_valid()) return; auto bone = skeleton->find_bone(bone_name); if (!bone.is_valid()) { return;