为我的 Unity 游戏制作一个 moddingAPI 并在没有直接引用的情况下调用函数
Posted
技术标签:
【中文标题】为我的 Unity 游戏制作一个 moddingAPI 并在没有直接引用的情况下调用函数【英文标题】:Making a moddingAPI for my Unity game and call functions without direct references 【发布时间】:2021-11-11 20:19:41 【问题描述】:我正在尝试为我的 Unity 游戏制作一个 moddingAPI,但我偶然发现了一个我无法真正找到答案的问题。让我解释:
我的 Unity 项目 中有一个特定功能,我们将其命名为 exampleFunction()
using moddingAPI;
public class exampleClass : MonoBehaviour
public static void exampleFunction()
//stuff
如果模组开发者想要调用这个函数,我该如何使用我的 moddingAPI 调用它?
我知道模组制作者必须编写如下内容:
using moddingAPI;
public void callModdingAPI()
moddingAPI.moddingClass.callExampleFunction();
moddingAPI 类库将包含以下内容:
using ???????;
public class moddingClass : MonoBehaviour
public static void callExampleFunction()
//how do I get the reference to "exampleClass"?
exampleClass.exampleFunction();
⬆ 这部分是我的问题所在。
我目前正在使用一个全新的类库创建 moddingAPI,没有导入任何内容(.NET Framework,如果它很重要)。
我没有直接引用我的 Unity 游戏中的 exampleClass
,所以这段代码不起作用,我不知道如何获得这个引用。我必须导入一些东西吗?我必须建造一些东西吗?我需要做什么?提前致谢。
【问题讨论】:
【参考方案1】:您需要做的是将此库构建并发布为 .DLL 文件。
假设您将其发布为“ModdingApiLib.dll”。
在你的统一代码中,你必须导入这个 .DLL,然后在你的代码中引用它:
public static void main()
new ModdingApiLib.ExampleFunction();
【讨论】:
但是如何在我的统一项目中获得对exampleFunction()
的引用?我没有这个参考,所以我不能用我的 ModdingApiLib.dll 调用这个函数。我是不是误会了什么?如果是这样,请纠正我。
假设您拥有正确的访问修饰符(公共),.DLL 将保存对您的代码的所有引用
但这是我的问题,我没有这些参考资料。我无法将我的 UnityGame.sln 构建为 .dll 文件,然后将其导入我的 moddingAPILib 并引用我需要的所有内容......再次,如果我误解了任何内容,请纠正我,我开始认为,我完全走错了路,想太多了。
.DLL 文件不应该是游戏,.DLL 文件将是您导入游戏解决方案的 API 库。以上是关于为我的 Unity 游戏制作一个 moddingAPI 并在没有直接引用的情况下调用函数的主要内容,如果未能解决你的问题,请参考以下文章