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

时间:2017-06-17 05:31:55

标签: c# unity3d

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

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

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

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

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

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

C:\   PROJECT1 \     资产\       CodeForProject1 \       StandardAssets \     库\

C:\   项目2 \     资产\       CodeForProject2 \       资源\     库\

d:\   UsefulCode \     PlayerClass \     WeaponsClass \     DataAccessClass \

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

1 个答案:

答案 0 :(得分:3)

我完全理解你所面对的问题,我们前一段时间遇到了同样的问题。

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

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

哦!你可以用Unity类型创建一个dll并正常使用它们。