提问人:Randy Hall 提问时间:5/10/2023 更新时间:5/10/2023 访问量:139
Harmony - 为对象添加属性或类似效果
Harmony - add property to object, or similar effect
问:
有一个类我不能直接用类似
BuildingSaveData {
public override BuildingSaveData SaveTheThing(Building b){
this.propOne = b.propOne;
//etc etc
return this;
}
public SerializableVector3 propOne;
}
在某个地方,它被序列化并保存起来以备后用。
然后反向
public override Building LoadTheThing(Building b){
b.propOne = this.propOne;
//etc etc
return b;
}
我想向这个对象添加一个属性,以便与其他所有内容一起序列化/反序列化。
我认为不可能在运行时将属性添加到 C# 中的类中,但我还不熟悉 Harmony,所以它可能有一些我不知道的魔力。
我的尝试
这是我在保存时尝试做的事情:
[HarmonyPatch(typeof(BuildingSaveData))]
[HarmonyPatch(nameof(BuildingSaveData.SaveTheThing))]
public class BuildingSavePatch
{
static void Postfix(Building b, BuildingSaveData __result)
{
__result.localScale = b.transform.GetChild(0).localScale;
}
}
但这引发了明显的错误,即“BuildingSaveData 不包含 localScale 的定义”
答: 暂无答案
评论