diff options
author | Juan Linietsky <juan@godotengine.org> | 2019-02-22 09:04:59 -0300 |
---|---|---|
committer | Juan Linietsky <juan@godotengine.org> | 2019-02-22 09:05:34 -0300 |
commit | edbf1d0ea49517be80e514595fc71d7069423edb (patch) | |
tree | c710d9b58bbaf69dffd80abbe0cf7012c2bd0c34 /scene | |
parent | 258bc0385762b5d1dceff520e0c4e1c4e4e512a0 (diff) |
Check that area is inside tree besides checking that queries are flushed, fixes #26148
Diffstat (limited to 'scene')
-rw-r--r-- | scene/2d/area_2d.cpp | 2 | ||||
-rw-r--r-- | scene/3d/area.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/scene/2d/area_2d.cpp b/scene/2d/area_2d.cpp index 63c4758a34..9e8bf62fc5 100644 --- a/scene/2d/area_2d.cpp +++ b/scene/2d/area_2d.cpp @@ -426,7 +426,7 @@ bool Area2D::is_monitoring() const { void Area2D::set_monitorable(bool p_enable) { - if (locked || Physics2DServer::get_singleton()->is_flushing_queries()) { + if (locked || (is_inside_tree() && Physics2DServer::get_singleton()->is_flushing_queries())) { ERR_EXPLAIN("Function blocked during in/out signal. Use set_deferred(\"monitorable\",true/false)"); } ERR_FAIL_COND(locked || Physics2DServer::get_singleton()->is_flushing_queries()); diff --git a/scene/3d/area.cpp b/scene/3d/area.cpp index 99f43b1242..9e15a416b2 100644 --- a/scene/3d/area.cpp +++ b/scene/3d/area.cpp @@ -439,7 +439,7 @@ Array Area::get_overlapping_bodies() const { void Area::set_monitorable(bool p_enable) { - if (locked || PhysicsServer::get_singleton()->is_flushing_queries()) { + if (locked || (is_inside_tree() && PhysicsServer::get_singleton()->is_flushing_queries())) { ERR_EXPLAIN("Function blocked during in/out signal. Use set_deferred(\"monitorable\",true/false)"); } ERR_FAIL_COND(locked || PhysicsServer::get_singleton()->is_flushing_queries()); |