Search Issue Tracker
By Design
Votes
0
Found in
2019.3.0f2
2019.3.0f4
Issue ID
1210674
Regression
Yes
OnPostprocessTexture isn't called when the asset matches a version that was previously imported
OnPostprocessTexture isn't always called
When a texture asset is modified, OnPostprocessAllAssets is always called when focussing the editor. However, OnPostprocessTexture isn't always called, sometimes it is, sometimes it isn't.
Repro steps:
1. Have an AssetPostprocessor that logs OnPostprocessAllAssets and OnPostprocessTexture.
2. Modify a texture asset externally.
3. Switch back to Unity (alt-tab or with mouse).
4. Repeat steps 2 and 3 as necessary.
Expected behavior: Both OnPostprocessAllAssets and OnPostprocessTexture should be called
Observed behavior: OnPostprocessAllAssets is always called, but OnPostprocessTexture isn't always called
The project in this report contains a postprocessor and an image which can be used to go through the repro steps.
Reproducible: 2019.3.0f5, 2020.1.0a19
Not repro: 2018.4.14f1, 2017.4.35f1,
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- [Silicon] Artifacts appear in the Game view when resizing the window/entering the Play Mode in a specific project
- Marker in the animation’s preview window doesn’t stop when reaching the end of the timeline and jumps to the start of the animation when moving it with the cursor
- Animation Event marker is not placed on the current time of the timeline when using the “Add Event” button
- Editor crashes on vector_map<ConstantString,AssetBundle when using the LoadAssetAsync function
- Fetched files in Perforce are automatically added to the change list when they are serialized
Resolution Note (2020.1.X):
If a post-processor is modifying the asset or creating additional artifacts, that modification will be saved and any additional artifacts are now saved in a local cache (until the editor is closed), so re-running the post-processor should not be needed.
This was also the case even before 2019.3 when using the cache server.
If some post-processors are depending on this callback to do some side-effects, it's actually wrong because importers should ideally not have side-effects and those would be anyway impacted in the future by running imports on a separate worker process, for example.
OnPostprocessAllAssets runs on the main thread and is always called, so that would be the place for side-effects to be executed.