Merge pull request #78143 from YuriSizov/particles-fall-far-from-tree
Avoid error spam when (un)pausing GPUParticles out of tree
This commit is contained in:
commit
e00e4a8696
|
@ -551,10 +551,12 @@ void GPUParticles2D::_notification(int p_what) {
|
|||
|
||||
case NOTIFICATION_PAUSED:
|
||||
case NOTIFICATION_UNPAUSED: {
|
||||
if (can_process()) {
|
||||
RS::get_singleton()->particles_set_speed_scale(particles, speed_scale);
|
||||
} else {
|
||||
RS::get_singleton()->particles_set_speed_scale(particles, 0);
|
||||
if (is_inside_tree()) {
|
||||
if (can_process()) {
|
||||
RS::get_singleton()->particles_set_speed_scale(particles, speed_scale);
|
||||
} else {
|
||||
RS::get_singleton()->particles_set_speed_scale(particles, 0);
|
||||
}
|
||||
}
|
||||
} break;
|
||||
|
||||
|
|
|
@ -417,15 +417,6 @@ NodePath GPUParticles3D::get_sub_emitter() const {
|
|||
|
||||
void GPUParticles3D::_notification(int p_what) {
|
||||
switch (p_what) {
|
||||
case NOTIFICATION_PAUSED:
|
||||
case NOTIFICATION_UNPAUSED: {
|
||||
if (can_process()) {
|
||||
RS::get_singleton()->particles_set_speed_scale(particles, speed_scale);
|
||||
} else {
|
||||
RS::get_singleton()->particles_set_speed_scale(particles, 0);
|
||||
}
|
||||
} break;
|
||||
|
||||
// Use internal process when emitting and one_shot is on so that when
|
||||
// the shot ends the editor can properly update.
|
||||
case NOTIFICATION_INTERNAL_PROCESS: {
|
||||
|
@ -450,6 +441,17 @@ void GPUParticles3D::_notification(int p_what) {
|
|||
RS::get_singleton()->particles_set_subemitter(particles, RID());
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_PAUSED:
|
||||
case NOTIFICATION_UNPAUSED: {
|
||||
if (is_inside_tree()) {
|
||||
if (can_process()) {
|
||||
RS::get_singleton()->particles_set_speed_scale(particles, speed_scale);
|
||||
} else {
|
||||
RS::get_singleton()->particles_set_speed_scale(particles, 0);
|
||||
}
|
||||
}
|
||||
} break;
|
||||
|
||||
case NOTIFICATION_VISIBILITY_CHANGED: {
|
||||
// Make sure particles are updated before rendering occurs if they were active before.
|
||||
if (is_visible_in_tree() && !RS::get_singleton()->particles_is_inactive(particles)) {
|
||||
|
|
Loading…
Reference in New Issue