Closed renaudbedard closed 9 years ago
Can be fixed by putting the
_components.ComponentAdded += Components_ComponentAdded;
_components.ComponentRemoved += Components_ComponentRemoved;
calls to the very end of Initialize()
in Game.cs
This will need an XNA4 accuracy check - I won't be able to do this for a while, so if someone wants to nab this before me you've got plenty of time to beat me to it.
I just checked this with XNA4 and it appears we're doing the accurate behavior as-is. Components not in the list by base.Initialize() will NOT be automatically initialized. The documentation seems to indicate that this is intentional, too:
https://msdn.microsoft.com/en-us/library/microsoft.xna.framework.gamecomponent.initialize.aspx
If this GameComponent has been added to the Game.Components collection, this method will be called automatically if you call base.Initialize in your Game.Initialize method.
In classes that derive from Game, it is necessary to call base.Initialize in Game.Initialize, which will automatically enumerate through any game components that have been added to Game.Components and call their Initialize method.
If you do in your Game inheritor :
The
MyLateComponent
never gets initialized.