java - 如何从 Java 调用正在运行的 C# 应用程序中的方法?

标签 java c# unity-game-engine

我和我的 friend 正在为一款名为“Stickfight”的游戏开发“模组”。该 mod 是用 Kotlin 编写的(可与 Java 互操作),但由于我们无法调用方法,因此它受到限制。

这可能吗?有相关的库吗?

如果有帮助的话,Stickfight 是在 Unity 中制作的。

最佳答案

首先,您应该了解游戏是使用 Mono 还是 IL2CPP 编译的。 如果使用 IL2CPP,则原始 C# 代码现在是 C++(以 native 机器代码编译),因此您根本无法调用 C# 方法。如果使用 mono,您应该能够调用 C# 方法,但前提是游戏开发人员确实付出了一些努力来支持这种方式的修改(更多信息请参见此处): http://www.somasim.com/blog/2017/12/tech-notes-unity-game-modding/

当然这有很多问题,一个例子是它只与 Windows 平台兼容(但是 Unity 的一个很棒的事情是它可以通过非常小的努力实现跨平台支持(最主要的是要使其在移动设备上运行,需要创建一个触摸屏输入系统))。

Unity游戏不容易mod,原因是框架是跨平台的(有些平台不支持just-in-time,甚至IL2CPP也不支持)。唯一真正的解决方案是游戏的开发人员决定支持像 miniscript 或 Moonsharp 这样的脚本语言,但由于您不是开发人员,我建议您联系开发人员以了解他/她是否会尝试实现一些可以帮助您进行 retrofit 的东西。

关于java - 如何从 Java 调用正在运行的 C# 应用程序中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58370367/

相关文章:

java - 从 ASCII 值到 Char 的转换

java - 使用 JRE 8 时 UI 抽搐和丢失字母

java - 如何访问 if block 内声明的变量?

c# - HttpClient,实现上传File时的进度

c# - 为什么在统一使用 Pixelperfect 相机时无法更改相机视口(viewport)矩形?

Java SWT 表查看器。只允许 Entry 作为 DropTarget

c# - 现在和下一个小时之间的时间跨度?

c# - 基于 ItemsControl 中的验证项的 WPF 启用/禁用按钮

C# : How to indicate that a supposedly unused method is being used from outside the project?

UNITY 游戏引擎的 Javascript 帮助