Unity C# 反射 Get/Set 问题

Unity C# Reflection Get/Set Issue

我只是无法正常工作,所以也许有人可以支持。

我想以编程方式设置特定组件字段的值。这是我的代码(Log_temp 是组件):

                FieldInfo info = Log_temp.GetType().GetField("Driver_" + tour.Driver);
                TypedReference infoStructRef = __makeref(Log_temp);

                JSON Tour_Json = JSON.Serialize(tour);

                info.SetValueDirect(infoStructRef, Tour_Json.CreateString());

这很好用。现在我不仅要设置值,还要将(字符串)值添加到字段中的现有值。这是我尝试过的:

            FieldInfo info = Log_temp.GetType().GetField("Driver_" + tour.Driver);
            TypedReference infoStructRef = __makeref(Log_temp);

            JSON Tour_Json = JSON.Serialize(tour);

            info.SetValueDirect(infoStructRef, info.GetValueDirect(infoStructRef).ToString() + Tour_Json.CreateString());

我尝试了其他几种方法,但要么出现错误,要么没有任何变化。有人可以帮我吗?非常感谢!

不是反射专家,但你不能只使用 GetValue and SetValue

info.SetValue(Log_temp, (string)info.GetValue(Log_temp) + Tour_Json.CreateString());