有用 BepInEx 开发过 mod 的大佬吗,修改变量无效?

2021-08-03 22:29:47 +08:00
 zeronofreya

具体游戏是戴森球计划

[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;

不清楚为什么不能改

720 次点击
所在节点    问与答
2 条回复
levelworm
2021-08-04 04:27:58 +08:00
弱弱的问,这是传引用还是值进去?
zeronofreya
2021-08-04 15:26:30 +08:00
@levelworm 我觉得是值

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/793481

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX