mirror of
https://github.com/godotengine/godot.git
synced 2024-12-09 10:09:20 +08:00
Avoid error spam when (un)pausing GPUParticles out of tree
This commit is contained in:
parent
7b1387ff21
commit
991f4d5183
@ -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
Block a user