Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GPUParticles3D is_emitting is incorrectly toggled #97974

Open
TheYellowArchitect opened this issue Oct 8, 2024 · 3 comments
Open

GPUParticles3D is_emitting is incorrectly toggled #97974

TheYellowArchitect opened this issue Oct 8, 2024 · 3 comments

Comments

@TheYellowArchitect
Copy link

TheYellowArchitect commented Oct 8, 2024

Tested versions

  • Reproducible in 4.4 dev3

System information

Godot v4.4.dev (0a9ad8f) - Artix Linux #1 SMP PREEMPT_DYNAMIC Wed, 02 Oct 2024 15:03:06 +0000 on Tty - X11 display driver, Multi-window, 1 monitor - OpenGL 3 (Compatibility) - NVIDIA GeForce GTX 1050 Ti (nvidia; 560.35.03) - AMD Ryzen 5 2600 Six-Core Processor (12 threads)

Issue description

I have an GPUParticles3D with the property one-shot enabled. Let's say 2 seconds lifetime. And there is the scene of the GPUParticles3D itself and a main scene where it is placed multiple times.

The problem is that if the emitting stops in 2 seconds in its own scene, it also stops in the scenes this is located in. Whatever, its a chore but not a big issue because I can manually start it on _enter_tree(). And there is a proposal opened for an autoplay

But the real bug is that if it is emitting in its own scene, and I close that scene, then start the main scene, it emits (as expected) but once the emitting ends for all particles in the main scene, it also ends in its own scene (dirty flag?)
And if you then open the particle scene itself, it has is_emitting disabled/false, but it IS emitting in the editor.

Steps to reproduce

  1. Create a GPUParticles3D with one-shot property, lifetime 10 seconds, and save it as its own scene.
  2. Place the above scene in your main scene, any amount of times.
  3. On the particle scene itself, enable is_emitting and close the scene.
  4. Start/Play the main scene
  5. Await for lifetime to end
  6. Close the game, and open the GPUParticles3D scene

Or just open the MRP below, open smoke_scene.tscn, enable is_emitting and reduce the lifetime (so you dont wait 60 seconds), close the scene, run the main scene, await lifetime to end, then open smoke_scene.tscn

Minimal reproduction project (MRP)

smoke-grenade-room.zip

@AThousandShips
Copy link
Member

AThousandShips commented Oct 8, 2024

Sounds like:

Which seems to be considered an enhancement/missing feature

@TheYellowArchitect
Copy link
Author

This part is what differentiates it from the linked issue

And if you then open the particle scene itself, it has is_emitting disabled/false, but it IS emitting in the editor.

@TheYellowArchitect
Copy link
Author

particles-emitting-in-editor-despite-false.mp4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants