如何在Unity项目之间共享c#源代码?

Ngu*_*iàu 8 c# unity-game-engine

我们正在进行两个项目,并希望在它们之间共享一些类.共享源必须位于单个位置,因此当Project1上的程序员更新代码时,会立即在Project2中看到这些更改.

重要的是我们不想维护相同代码的多个副本.我想我们会同意这样做的坏习惯.

唯一的选择似乎是将代码放在类库中,并将其作为插件加载到每个项目中.但是,当引用像GameObject或转换这样的Unity类型时,我认为这不起作用.

在C/C++领域,我们可以将源代码放在一个目录中并将其包含在我们想要的任何解决方案中 - 在Unity-land中似乎并不那么容易.他们是在团结项目之间共享代码的更好方法吗?

编辑:所有项目,包括共享代码,都已受源代码管理.这不是源控制问题,它是一个框架问题.(显然我需要写更好的问题!)

让我们说目录结构看起来像这样......

C:\ Project1\Assets\CodeForProject1\StandardAssets\Library \

C:\ Project2\Assets\CodeForProject2\Resources\Library \

D:\ UsefulCode\PlayerClass\WeaponsClass\DataAccessClass \

Unity可以参考其他项目的代码吗?Unity可以在其自己的Assets文件夹之外引用代码吗?如果是这样,怎么样?

Kle*_*ber 3

我完全理解您所面临的问题,我们不久前也遇到过同样的问题。

我们共享代码的想法是成为一种中间件,因此它自然会不断发展。我们的解决方案是为共享代码创建一个 git 模块。我知道你说这不是源代码控制问题,但至少在我的公司,创建 dll 不是一个好的解决方案,因为我们不断更改共享代码(我们也尝试过软链接,但这是非常痛苦的)在所有机器中维护)。

在这里,我们创建了两个项目:一个用于中间件,另一个仅用于测试。最后一个只有中间件的 gitmodule 和一堆单元测试。我们这样做是为了确保不依赖其他项目。两者都在源代码管理中。因此,当有人想要在中间件中实现新功能时,他/她可以将其放入测试项目中,并在完成后提交给这两个项目。

哦!并且可以用Unity类型制作一个dll并正常使用。