It seems both of the convert options doens’t work with Instantiate during in Client/SErver world, as the conversionSystem only resides in default world.
Workaround
var world = World.DefaultGameObjectInjectionWorld;
World.DefaultGameObjectInjectionWorld = World.AllWorlds[0];
var cameraObject = Object.Instantiate(m_settings.m_characterCamera);
World.DefaultGameObjectInjectionWorld = world;
But not sure how safe it is to assume index 0 is default.
Will/is there be a better way, or when will we get Camera as Entity?
It only works with “ConvertToClientServerEntity” with the code I posted before. Only having the component doesn’t solve it, since the current DefaultGameObjectInjectionWorld has to be the default world, since the ConversionSystem isn’t included in client and server worlds.
The problem is that we are currently in the netcode setting World.Active to the currently executing world to work around issues with other code using it incorrectly. This has a side effect of also changing DefaultGameObjectInjectionWorld. We will stop doing that soon and when we do your workaround will no longer be required.