mirror of
https://github.com/godotengine/godot.git
synced 2025-10-28 04:04:24 +00:00
Mono/C#: Fix values not updated in remote inspector
This commit is contained in:
parent
9239412027
commit
51e1614d28
2 changed files with 47 additions and 17 deletions
|
|
@ -2419,15 +2419,22 @@ bool CSharpScript::_update_exports() {
|
|||
StringName member_name = field->get_name();
|
||||
|
||||
member_info[member_name] = prop_info;
|
||||
#ifdef TOOLS_ENABLED
|
||||
if (is_editor && exported) {
|
||||
exported_members_cache.push_front(prop_info);
|
||||
|
||||
if (tmp_object) {
|
||||
exported_members_defval_cache[member_name] = GDMonoMarshal::mono_object_to_variant(field->get_value(tmp_object));
|
||||
if (exported) {
|
||||
#ifdef TOOLS_ENABLED
|
||||
if (is_editor) {
|
||||
exported_members_cache.push_front(prop_info);
|
||||
|
||||
if (tmp_object) {
|
||||
exported_members_defval_cache[member_name] = GDMonoMarshal::mono_object_to_variant(field->get_value(tmp_object));
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(TOOLS_ENABLED) || defined(DEBUG_ENABLED)
|
||||
exported_members_names.insert(member_name);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2440,21 +2447,28 @@ bool CSharpScript::_update_exports() {
|
|||
StringName member_name = property->get_name();
|
||||
|
||||
member_info[member_name] = prop_info;
|
||||
|
||||
if (exported) {
|
||||
#ifdef TOOLS_ENABLED
|
||||
if (is_editor && exported) {
|
||||
exported_members_cache.push_front(prop_info);
|
||||
if (tmp_object) {
|
||||
MonoException *exc = nullptr;
|
||||
MonoObject *ret = property->get_value(tmp_object, &exc);
|
||||
if (exc) {
|
||||
exported_members_defval_cache[member_name] = Variant();
|
||||
GDMonoUtils::debug_print_unhandled_exception(exc);
|
||||
} else {
|
||||
exported_members_defval_cache[member_name] = GDMonoMarshal::mono_object_to_variant(ret);
|
||||
if (is_editor) {
|
||||
exported_members_cache.push_front(prop_info);
|
||||
if (tmp_object) {
|
||||
MonoException *exc = nullptr;
|
||||
MonoObject *ret = property->get_value(tmp_object, &exc);
|
||||
if (exc) {
|
||||
exported_members_defval_cache[member_name] = Variant();
|
||||
GDMonoUtils::debug_print_unhandled_exception(exc);
|
||||
} else {
|
||||
exported_members_defval_cache[member_name] = GDMonoMarshal::mono_object_to_variant(ret);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(TOOLS_ENABLED) || defined(DEBUG_ENABLED)
|
||||
exported_members_names.insert(member_name);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3591,6 +3605,16 @@ CSharpScript::~CSharpScript() {
|
|||
#endif
|
||||
}
|
||||
|
||||
void CSharpScript::get_members(Set<StringName> *p_members) {
|
||||
#if defined(TOOLS_ENABLED) || defined(DEBUG_ENABLED)
|
||||
if (p_members) {
|
||||
for (Set<StringName>::Element *E = exported_members_names.front(); E; E = E->next()) {
|
||||
p_members->insert(E->get());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/*************** RESOURCE ***************/
|
||||
|
||||
RES ResourceFormatLoaderCSharpScript::load(const String &p_path, const String &p_original_path, Error *r_error, bool p_use_sub_threads, float *r_progress, bool p_no_cache) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue