20-04-2022, 08:41 AM
(This post was last modified: 20-04-2022, 08:44 AM by josemendez.)
(20-04-2022, 08:24 AM)locque Wrote: I wonder why I keep having so many unreproducable issues with Obi. I tried importing most of my other assets in 2021.3, none of them cause this issue. It's only Obi, any idea what could be different about your asset that triggers this problem?
No idea, Obi is just a collection of regular C# scripts and sample materials, scenes, textures, etc. It does not do anything at editor initialization, does not attach itself to editor callbacks, or anything else that could explain such a huge performance drop in-editor, with no Obi scripts being executed or even present in the scene.
The profiler clearly shows the editor is stuck doing a lot of work every frame that's completely unrelated to Obi. When it crashes, the stack trace does not contain any remotely Obi-related calls.
I'm going to speculate a bit here: Unity 2021.2.17f1 introduced a fairly large amount of changes/fixes related to the editor's search engine.
https://unity3d.com/es/unity/whats-new/2021.2.17
Quote:- Scripting: Optimized searching for scripts when the assembly name is not supplied, can significantly improve performance entering PlayMode amongst other areas.
- Search: Many UI and UX search improvements
- Search: Fixed a search indexer get document lock issue while incremental updating.
- Search: Fixed an issue where search engines initialization was not delayed until after user code was compiled
- Editor: Fixed a missing search result refresh when executing CTRL+Z to undo last block modifications
- Editor: Use SearchViewState.group to initialize initial results tab when a new search window is created.
Since the editor is going trough 20000 items every frame calling a function named "SearchEnumerator", if I had to take a wild guess I'd say the editor is stuck either building a search index for all assets in the project, or looking trough all of them, every frame.
Why does Obi trigger this? maybe because of the amount of files/assets it imports? maybe because Unity doesn't like the name or location of a specific file? I can't possibly know.