Emit warning when `Pickable` added to an entity whose mesh is unloaded from main world
- Dominant language
- Rust
- Stars
- 48.2k
- Forks
- 4.8k
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 171
Description
## What problem does this solve or what need does it fill?
I lost several hours to a silent failure caused by specifying `RenderAssetUsages::RENDER_WORLD` on a procedural mesh builder. I figured this was safe since the docs don't mention any footguns associated with this setting, in fact they recommend it for unchanging assets:
```
/// If your asset does not change, consider using `RenderAssetUsages::RENDER_WORLD` exclusively. This will cause
/// the asset to be unloaded from the main world once it has been prepared for rendering.
```
but when I later added the MeshPickingPlugin it simply doesn't see any of the meshes without giving any hint as to why.
## What solution would you like?
Emit a warning when a mesh with `RENDER_WORLD` asset usage is added alongside a non-ignore `Pickable` component, as I don't think this could ever be intended usage.
## What alternative(s) have you considered?
Several doc improvements could allay this issue as well, chief among which warnings added to `RenderAssetUsages` and maybe `Pickable` or `MeshPickingSettings`.
Contributor guide
Research direction
Start by tracing how RenderAssetUsages::RENDER_WORLD unloads meshes from the main world and how MeshPickingPlugin handles entities with Pickable. Use Pickable and MeshPickingSettings as the entry points for the warning behavior. Done means the specified non-ignore Pickable case emits a warning, while ignored or otherwise valid cases do not.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- computer-graphics, game-dev
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100