Browse Source

Merge pull request #49341 from lawnjelly/vis_notifier_fix

Rémi Verschelde 4 years ago
parent
commit
a9f56d80f0
1 changed files with 14 additions and 6 deletions
  1. 14 6
      scene/3d/visibility_notifier.cpp

+ 14 - 6
scene/3d/visibility_notifier.cpp

@@ -34,6 +34,8 @@
 #include "scene/3d/camera.h"
 #include "scene/3d/camera.h"
 #include "scene/3d/physics_body.h"
 #include "scene/3d/physics_body.h"
 #include "scene/animation/animation_player.h"
 #include "scene/animation/animation_player.h"
+#include "scene/animation/animation_tree.h"
+#include "scene/animation/animation_tree_player.h"
 #include "scene/scene_string_names.h"
 #include "scene/scene_string_names.h"
 
 
 void VisibilityNotifier::_enter_camera(Camera *p_camera) {
 void VisibilityNotifier::_enter_camera(Camera *p_camera) {
@@ -146,11 +148,8 @@ void VisibilityEnabler::_find_nodes(Node *p_node) {
 		}
 		}
 	}
 	}
 
 
-	{
-		AnimationPlayer *ap = Object::cast_to<AnimationPlayer>(p_node);
-		if (ap) {
-			add = true;
-		}
+	if (Object::cast_to<AnimationPlayer>(p_node) || Object::cast_to<AnimationTree>(p_node) || Object::cast_to<AnimationTreePlayer>(p_node)) {
+		add = true;
 	}
 	}
 
 
 	if (add) {
 	if (add) {
@@ -212,9 +211,18 @@ void VisibilityEnabler::_change_node_state(Node *p_node, bool p_enabled) {
 
 
 	if (enabler[ENABLER_PAUSE_ANIMATIONS]) {
 	if (enabler[ENABLER_PAUSE_ANIMATIONS]) {
 		AnimationPlayer *ap = Object::cast_to<AnimationPlayer>(p_node);
 		AnimationPlayer *ap = Object::cast_to<AnimationPlayer>(p_node);
-
 		if (ap) {
 		if (ap) {
 			ap->set_active(p_enabled);
 			ap->set_active(p_enabled);
+		} else {
+			AnimationTree *at = Object::cast_to<AnimationTree>(p_node);
+			if (at) {
+				at->set_active(p_enabled);
+			} else {
+				AnimationTreePlayer *atp = Object::cast_to<AnimationTreePlayer>(p_node);
+				if (atp) {
+					atp->set_active(p_enabled);
+				}
+			}
 		}
 		}
 	}
 	}
 }
 }