HarmonyLib无法修改变量怎么办?

发布于 2022-09-13 00:56:52 字数 792 浏览 15 评论 0

具体游戏是戴森球计划

[HarmonyPrefix]
[HarmonyPatch(typeof(InserterComponent), "InternalUpdate")]
public static bool InternalUpdatePrefix(InserterComponent __instance)
{
    __instance.itemId = 1234;  // 测试
    Console.WriteLine(__instance.itemId);   // 打印 1234
    return false;
}

[HarmonyPostfix]
[HarmonyPatch(typeof(InserterComponent), "InternalUpdate")]
public static void InternalUpdatePostfix(InserterComponent __instance)
{
    Console.WriteLine(__instance.itemId);  // 打印 0
}

做了个简单的测试,但未能改变 itemId 的值,反编译游戏代码,itemId 是 public

public int itemId;

不清楚为什么不能改

我曾经猜测可能是某段代码又把itemId该回去了,但
HarmonyPrefix->InternalUpdate->HarmonyPostfix
这个不是连贯的吗?感觉不太可能有代码参与其中

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文