【问题标题】:How to use shared C# project in Unity?如何在 Unity 中使用共享 C# 项目?
【发布时间】:2019-04-19 15:46:25
【问题描述】:

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

我有以下设置:

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

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

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

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

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

【问题讨论】:

  • 在您的解决方案文件中添加引用。
  • 重建时被移除
  • 你有三个不同的项目,是吗?将它们全部添加到同一个解决方案中。
  • 是的,我有三个不同的项目。我不确定,是否可以将 Unity 项目添加到现有解决方案中?我搜索了但找不到。
  • 只要符合csproj标准就可以了

标签: c# unity3d dll


【解决方案1】:

我知道有两种方法。

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

替代方法(在最初发布时可能)是使用未记录的创建AssetPostprocessor 子类的过程并创建函数private static string OnGeneratedSlnSolution(string path, string content) 来手动操作Unity 将生成的sln 文件包括您对共享库的引用。

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

【讨论】:

    【解决方案2】:

    我正在使用类似的设置。使用 Visual Studio,我刚刚在 Project properties -> build

    中将 build 目录更改为 assets 文件夹的目录

    【讨论】:

      【解决方案3】:

      在 Visual Studio (2017) 中:

      • Solution Explorer 中右键单击您的Solution
      • Add
      • Existing Project...

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

      【讨论】:

      • 好的,它工作了几秒钟,但它要求重新添加引用。使用 Jetbrains Rider
      • 这很奇怪。这可能是 Rider 的一个错误,或者可能需要其他一些过程?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多