| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- TODO
- - Ability to break external references as a pre-processing step
- ---------------------------------------
- IMMEDIATE:
- ScriptSerializableObjectRTTI::onDeserializationEnded
- - Compare stored and new SerializableObjectInfo (if it even exists)
- - Must ensure the object info instances match
- - (I might also want to compare type class/struct status in case it changed)
- - Create new managed object instance
- - Fill out the class fields (those whose types match the new SerializableObjectInfo->mFields)
- ScriptSerializableArrayRTTI::onDeserializationEnded
- - Attempt to create new managed object instance
- Need Object & Array ScriptSerializableField classes
- ManagedComponent needs to create SerializableObject and return it in its RTTI
- When deserializing SerializableObjectInfo base classes references won't be held anywhere (they're only pointed to by mBaseClass which is a weak_pointer)
- In ScriptEnginePlugin I am running RuntimeScriptObjects but never shutting it down - Right now its only for debug purposes
- LOW PRIORITY
- - Add Multi-dimensional arrays / Lists / Dictionaries
- - (To get array lengths per rank I probably need to cast to System.Array and then call GetLength)
- - Ensure that unknown components retain their field data so when they are no longer unknown their data may be restored
- - 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)
- ---------------------------------------
- Testing:
- Set up a test case - Initially disable field serialization
- - In C# create SceneObject("ManagedSO")
- - Add to it DbgComponent
- - Call a dummy C++ method (in ScriptSceneObject for example)
- - C++ method calls clone() on the scene object and creates a new "ManagedSOClone" object and parents it as a child of current SO
- - C# then retrieves a child and checks if the component is there
- ------------------------------------------------------
- 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++
- -------------------------------------------------------
- Other:
- Instantiating mono generic classes: http://stackoverflow.com/questions/17628411/get-generic-type-using-mono-embedded
|