Due to our work in having top level System Groups alongside the built in Initialization, Simulation, and Presentation groups, Unity's System Window for debugging in the Editor breaks.
InvalidProgramException: Couldn't find system "YOUR CUSTOM SYSTEM" in World
Unity.Entities.Editor.WorldProxy.FindSystemIndexFor (Unity.Entities.ComponentSystemBase sys) (at ./Library/PackageCache/com.unity.entities@1.0.11/Unity.Entities.Editor/SystemSchedule/PlayerLoop/WorldProxy.cs:107)
There is a workaround in the forum post that involves modifying the internal source of the package and using that.
We would just need to figure out the workflow for using that package instead of Unity's package system one.
How do we update the package when Unity releases updates to the real one.
How do we make sure that other packages which depended on this package, instead are satisfied by our modified one?
This is definitely the easiest code change to make though as written in the forum post.
We could keep the Unity package as is, but then write a custom method that works properly and inject that method into the class to replace the method that currently uses the local hardcoded array.
This is a much nicer solution but might be a bit tricky to pull off.
Due to our work in having top level System Groups alongside the built in
Initialization
,Simulation
, andPresentation
groups, Unity's System Window for debugging in the Editor breaks.This is a hold over from Entities 0.51 which had the same issue: https://forum.unity.com/threads/entities-0-50-systems-window-doesnt-handle-custom-top-level-componentsystemgroup.1271861/
Unity still hasn't fixed it.
Solutions
Modified Package
There is a workaround in the forum post that involves modifying the internal source of the package and using that. We would just need to figure out the workflow for using that package instead of Unity's package system one.
This is definitely the easiest code change to make though as written in the forum post.
Injection
Using reflection and some utilities mentioned here: https://stackoverflow.com/questions/7299097/dynamically-replace-the-contents-of-a-c-sharp-method
And then here: https://github.com/spinico/MethodRedirect
We could keep the Unity package as is, but then write a custom method that works properly and inject that method into the class to replace the method that currently uses the local hardcoded array.
This is a much nicer solution but might be a bit tricky to pull off.