如何在Unity中使用共享的C#项目?

时间:2019-04-19 15:46:26

标签: c# unity3d dll

我有一个问题困扰了我好几个星期。

我有以下设置:

  • 服务器(C#项目)
  • 共享(库)
  • 客户(Unity项目)

服务器和客户端都使用共享库的地方。

现在,我手动构建并将shared.dll复制到Unity项目的Assets文件夹中。

我觉得这很麻烦。我正在寻找一种自动方式,我进行了一些研究,了解到由于Unity会重建项目文件,因此无法将项目链接到该文件,因为它会在重建时自动删除。

我的问题是:如何将外部项目链接到Unity?

3 个答案:

答案 0 :(得分:1)

在Visual Studio(2017)中:

  • Solution上右键单击Solution Explorer
  • Add
  • Existing Project...

然后导航到Unity或共享库项目的.csproj文件,然后选择Open

答案 1 :(得分:1)

我正在使用类似的设置。使用 Visual Studio,我只是在项目属性 -> 构建

中将构建目录更改为资产文件夹的目录

答案 2 :(得分:1)

我知道有两种方式。

第一个也是最简单的方法是使用 Microsoft 的 MSBuildForUnity(它是在原始帖子之后创建的)https://github.com/microsoft/MSBuildForUnity/blob/master/Samples/IntegratedDependencies.Unity/README.md,它就是为此目的而构建的。

替代方案(在原始帖子发布时是可能的)是使用未记录的过程创建 AssetPostprocessor 的子类并创建函数 private static string OnGeneratedSlnSolution(string path, string content) 以手动操作 {{1} } Unity 将生成的文件,以包含您对共享库的引用。

这样,每次 Unity 重新创建 sln 文件时,它现在也会包含您的引用。不利的一面是内容以 sln 形式出现,因此您可能需要通过更多库对其进行解析,以确保获得有效结果或使您的解决方案非常严格。