如何根据 Unity 的文件夹结构设置命名空间

时间:2020-12-27 06:30:48

标签: c# unity3d

我下载了 Unity 20.2 并想为我的代码使用命名空间。我修改了我的项目设置

enter image description here

在编辑器中,我的代码现在有了这个文件夹结构

enter image description here

问题是创建的脚本 Test 具有命名空间 Sources,尽管我希望它是 Sources.Scripts。我也尝试过 Assets.Sources,但它仍然无法从中创建 Assets.Sources.Scripts

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:1)

如果您在 Visual Studio 中创建一个类,那么它会自动从文件夹结构中获取命名空间。喜欢assets.scripts.something。只需在正确的位置创建类,您就会获得所有需要的命名空间。

答案 1 :(得分:0)

我将描述一个项目中一些包的情况来解释这一点:

想象一个 Unity3D 中的项目,其目录结构如下:

  • 资产
    • 资源
    • 场景
    • 源/脚本
      • 用户界面
        • 按钮
        • 模态

在这种情况下,命名空间约定由项目中使用的编程语言 (C#) 驱动(大写的第一个字母,与文件夹的名称匹配)。

我建议您在选择包的命名空间时忽略目录路径,直到“Source”或“Scripts”文件夹。然后在这个项目中我们会有这两个包:

  • ProjectName.UI.Buttons
  • ProjectName.UI.Modals

结论:编写您自己的命名空间,因为 Unity 命名空间生成基于根目录下的文件夹结构,例如,如果您想通过模块共享代码,我认为这不是最好的。< /p>

祝你好运,兄弟?

答案 2 :(得分:0)

如果您使用的是 Rider ,请尝试 this. Resharper 具有相同的选项。我不使用它们,因此,每次创建新类时都必须使用 Select(Assets) + Del。