Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何为Unity设置基于文件夹结构的名称空间_C#_Unity3d - Fatal编程技术网

C# 如何为Unity设置基于文件夹结构的名称空间

C# 如何为Unity设置基于文件夹结构的名称空间,c#,unity3d,C#,Unity3d,我下载了Unity 20.2,并希望在代码中使用名称空间。我将我的项目设置修改为 在编辑器中,我的代码现在有了这个文件夹结构 问题是,创建的脚本测试具有名称空间源,尽管我希望它是Sources.Scripts。我还尝试了Assets.Sources,但它仍然无法从中创建Assets.Sources.Scripts 如何实现这一点?我将描述一个项目中一些软件包的情况,以解释这一点: 想象一下Unity3D中的一个项目,其目录结构如下: 资产 资源 场景 源代码/脚本 用户界面 按钮 情态动词 本例

我下载了Unity 20.2,并希望在代码中使用名称空间。我将我的项目设置修改为

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

问题是,创建的脚本测试具有名称空间源,尽管我希望它是Sources.Scripts。我还尝试了Assets.Sources,但它仍然无法从中创建Assets.Sources.Scripts


如何实现这一点?

我将描述一个项目中一些软件包的情况,以解释这一点:

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

资产 资源 场景 源代码/脚本 用户界面 按钮 情态动词 本例中的名称空间约定由项目中使用的编程语言C驱动,大写字母与文件夹名称匹配

我建议您在选择包的名称空间时,忽略目录路径,直到源或脚本文件夹。那么在这个项目中,我们将有两个包:

ProjectName.UI.Buttons ProjectName.UI.Modals 结论:编写您自己的名称空间,因为Unity名称空间的生成是基于根目录下的文件夹结构的,我认为这不是最好的,例如,如果您想按模块共享代码


祝你好运,bro如果你在visualstudio中创建了一个类,那么它会自动从文件夹结构中获取名称空间。比如资产、脚本等等。只需在正确的位置创建类,您将获得所有需要的名称空间。

如果您使用的是Rider,请尝试使用Resharper的相同选项。我不使用这两个选项,所以每次创建新类时都必须使用SelectAssets+Del。

为什么要使用downvote?请至少对此表示感谢,但不幸的是,我无法完全理解。您的示例的正确设置值应该是脚本?我个人更喜欢/Source文件夹而不是脚本。无论如何,您可以排除namespacesOk的文件夹路径,以便在资产文件夹中有一个名为Source的文件夹,其中包含所有代码。是否设置值Source或./Source?或Assets/Source或./Assets/Source是!我有一个源文件夹,在这个示例中,我的名称空间是:ProjectName.UI.Buttons和ProjectName.UI.Modals,我将编辑答案以包含项目名称,因为我忘记了它们,我尝试了Rider。目前我在设置中有值源。不幸的是,它仍然使用名称空间Assets.Sources来创建新文件。Rider告诉我修复该名称空间,但Rider希望它是Assets.Sources.Sources.Scripts,这也很奇怪。我现在用value Assets对其进行了测试,Rider将名称空间从Assets修复为Assets.Sources.Scripts,这是正确的。但是Unity功能很奇怪。。。它没有按预期工作。。。