TODO - Ability to break external references as a pre-processing step - I need to properly unload all assemblies (and possibly shutdown mono runtime?) before I shut down various modules used in ScriptBansheeEngine. C# Serialization - Ensure that everything still works when a serialized type is removed - Ensure that such components retain their field data so when they are no longer unknown their data may be restored --------------------------------------- LOW PRIORITY - Get rid of ScriptObject::createInstance and replace it with parameter in constructor - A way to serialize any object into a Resource (and deserialize it from Resource) ------------------------------------------------------ General C# component management Native components like Camera - ScriptCamera derives from Camera - Then whenever I check for managed Components I need to check if object type of ScriptComponent or any of the built-in types. - Checking each type might be a bit slow, but normally we will be looking for an exact type so hopefully this will only matter when enumerating all components which shouldn't be during performance critical moments. TODO - When reloading scripts how to handle restoring references? TODO - When I destroy a Component, how will I refresh the inspector to let it know that something has changed - Can happen from C# and C++