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

标签 c# unity3d

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

重要的是我们不想维护相同代码的多个副本。我认为我们会同意这样做只是一种不好的做法。

唯一的选择似乎是将代码放入类库中并将其作为插件加载到每个项目中。但我认为这在引用 GameObject 或 transform 等 Unity 类型时不起作用。

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

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

假设目录结构是这样的......

C:\ 项目1\ Assets \ CodeForProject1\ 标准 Assets \ 图书馆\

C:\ 项目2\ Assets \ CodeForProject2\ 资源\ 图书馆\

D:\ 有用代码\ 玩家类\ 武器类\ 数据访问类\

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

最佳答案

我完全理解您面临的问题,我们前段时间在这里遇到过同样的问题。

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

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

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

关于c# - 如何在 Unity 项目之间共享 C# 源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44601144/

相关文章:

c# - 批量插入问题

c# - Unity3d C#。 onClick.AddListener() 工作一次

c# - 将相机平移与 Unity 中的触摸控件相结合

android - 如何将Volley包含在Unity插件中?

c# - UWP Storyboard 和 CallMethodAction 的仅发布异常(exception)

c# - 有哪些可能的设计来解决这个并发问题?

c# - 加强源头控制

c# - 团结跟随领导行为

c# - 如何通过代码让一个GameObject颠倒过来?

c# - 为从 Unity 4.* 构建的 android 包找到一个混淆工具