Allow RVOAgent component to be modified from a bursted system

  • A* version: 5.3.6
  • Unity version: 2022.3.22f

Each frame the RepairPathSystem copies the RVO settings from the MangedState component to the RvoAgent component. The project i’m working on is heavily utilizing DOTS and I would like to modify the settings at runtime from a bursted system. Currently I’m forced to write to the ManagedState component from an unbursted system. I had a look at the RepairPathSystem and there is no option to disable this behavior.

It would be great if I could disable the syncing of the RVO settings from the ManagedState to the RVOAgent component. A scripting symbol would be a convenient way to control this. Disabling this behavior would allow me to modify the RVOAgent component from a bursted system and it would avoid unnecessary unbursted main thread work. An additional benefit would be that it would allow the RVOAgent component to be baked, instead of setting it at runtime on the ManagedState, just so it will be copied to the RVOAgent component. I’m aware that disabling the syncing would force me to handle enabling and disabling of local avoidance myself. That would be fine.

Best case would be if the entire RVO disabling/enabling and settings syncing would not depend on the ManagedState component. As this would require more work to implement, the suggested scripting symbol would work for me.

A workaround would be embedding the package and changing the RepairPathSystem but I would prefer not to change the package manually as it increases the work required to update the package in the future.