Add SerializeField private field support

This commit is contained in:
2026-04-03 16:19:56 +08:00
parent d4d825e1b1
commit 2b19b4bece
10 changed files with 333 additions and 17 deletions

View File

@@ -173,6 +173,7 @@ private:
bool ApplyContextFields(const ScriptRuntimeContext& context, MonoObject* instance);
bool ApplyStoredFields(const ScriptRuntimeContext& context, const ClassMetadata& metadata, MonoObject* instance);
MonoObject* CreateManagedGameObject(uint64_t gameObjectUUID);
bool HasSerializeFieldAttribute(MonoClassField* field) const;
bool TryExtractGameObjectReference(MonoObject* managedObject, GameObjectReference& outReference) const;
bool TrySetFieldValue(MonoObject* instance, const FieldMetadata& fieldMetadata, const ScriptFieldValue& value);
bool TryReadFieldValue(MonoObject* instance, const FieldMetadata& fieldMetadata, ScriptFieldValue& outValue) const;
@@ -198,6 +199,7 @@ private:
MonoClass* m_behaviourClass = nullptr;
MonoClass* m_gameObjectClass = nullptr;
MonoClass* m_monoBehaviourClass = nullptr;
MonoClass* m_serializeFieldAttributeClass = nullptr;
MonoMethod* m_gameObjectConstructor = nullptr;
MonoClassField* m_managedGameObjectUUIDField = nullptr;
MonoClassField* m_gameObjectUUIDField = nullptr;