aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvolzhs2017-04-03 21:00:38 +0900
committervolzhs2017-04-03 21:00:38 +0900
commit73f53a791859b4ecb7df7ab99ffe2e875873f159 (patch)
tree1bd021018ae8af5263adc56276679b127998d38b
parent12749dd67a4fc172ad69932ad5ac6310a9b92444 (diff)
downloadgodot-73f53a791859b4ecb7df7ab99ffe2e875873f159.tar.gz
godot-73f53a791859b4ecb7df7ab99ffe2e875873f159.tar.zst
godot-73f53a791859b4ecb7df7ab99ffe2e875873f159.zip
Fix monitoring status of Area2D
-rw-r--r--scene/2d/area_2d.cpp11
-rw-r--r--scene/2d/area_2d.h1
2 files changed, 9 insertions, 3 deletions
diff --git a/scene/2d/area_2d.cpp b/scene/2d/area_2d.cpp
index fff399f8f..1a53f684e 100644
--- a/scene/2d/area_2d.cpp
+++ b/scene/2d/area_2d.cpp
@@ -380,6 +380,10 @@ void Area2D::_notification(int p_what) {
switch (p_what) {
+ case NOTIFICATION_READY: {
+
+ is_ready = true;
+ } break;
case NOTIFICATION_EXIT_TREE: {
monitoring_stored = monitoring;
@@ -387,8 +391,8 @@ void Area2D::_notification(int p_what) {
_clear_monitoring();
} break;
case NOTIFICATION_ENTER_TREE: {
-
- set_enable_monitoring(monitoring_stored);
+ if (is_ready)
+ set_enable_monitoring(monitoring_stored);
} break;
}
}
@@ -646,7 +650,8 @@ Area2D::Area2D()
monitorable = false;
collision_mask = 1;
layer_mask = 1;
- monitoring_stored = true;
+ monitoring_stored = false;
+ is_ready = false;
set_enable_monitoring(true);
set_monitorable(true);
}
diff --git a/scene/2d/area_2d.h b/scene/2d/area_2d.h
index 8e854d474..1860127cb 100644
--- a/scene/2d/area_2d.h
+++ b/scene/2d/area_2d.h
@@ -60,6 +60,7 @@ private:
bool monitoring_stored;
bool monitorable;
bool locked;
+ bool is_ready;
void _body_inout(int p_status, const RID &p_body, int p_instance, int p_body_shape, int p_area_shape);