Unity中的特殊文件夹

2019-07-17  本文已影响0人  _Youcai

1.Editor

放在该文件夹或其中的子文件中的所有脚本都被视为编辑器脚本,并且不能运行在已经发布的游戏内,项目中可以包含多个Editor文件夹,但是在一些特殊的文件夹下可能会影响自身的编译顺序
注:如果脚本放在编辑器文件夹中并派生MonoBehaviour类,Unity不允许把这类脚本挂载到GameObject上

2.Editor Default Resources

Editor的默认资源文件夹,可以通过EditorGUIUtility.Load按需加载资源文件,这个函数从该文件夹内查找资源,并且你需要把该文件夹直接放在Assets目录下

3.Gizmos

Unity的Gizmos允许我们向场景视图中添加图形来辅助可视化不可见的设计细节,例如Gizmos.DrawIcon函数放置一个图形到场景视图中,以此来标记一个特殊的对象或位置,我们必须将用到的资源放置在Gizmos的文件夹中,以便能通过DrawIcon函数查找到

4.Plugins

Unity允许将插件添加到项目中拓展Unity的可用功能,插件通常是其他语言已经生成好的DLL,放置在Plugins下的DLL的文件最优先编译,其次是非Editor目录下文件,Editor最后编译,三者存在固定优先级

5.Resources

Unity允许我们根据自身需要通过脚本加载资源,Resources.Load加载Resources文件夹下的资源,并且Resources文件夹可以放到项目内的任何地方,当位于Editor文件夹下时,里面的资源可以通过编辑器脚本加载,但是在发布时,这些资源会被删除

6.Standard Assets

当我们导入标准资源包时,这些资源会被放到一个名叫Standard Assets的文件及中,该文件夹除了可以包含资源外,还会影响脚本的编译顺序

7.StreamingAssets

大多数游戏资源都会直接打包到产品中,但在某些情况下,我们希望保存文件的原格式,放置在StreamingAssets文件夹下的资源,会以原样复制到目标平台,然后在特地文件夹中加载他们,StreamingAssets目录中的任何文件都会原封不动的拷贝到目标平台的特定目录中,可以通过Application.streamingAssetsPath,获取到文件夹的路径,文件可读不可写,DLL文件不参与编译,Android平台下通过WWW类来读取
--以下路径等同于Application.StreamingAssetsPath
在台式机上(Mac OS / Windows)上,可以使用下面代码获取文件的位置:
path=Application.dataPath+"/StreamingAssets";
在IOS中,使用:path=Application.dataPath+"/Raw";
在Android中,使用:path="jar:file://"+Application.dataPath+"!/assets/";

8.Hidden Assets

在导入过程中,Unity完全忽略Assets目录中的(或其中的子目录)中的以下文件和文件夹
隐藏的目录
以‘.’开头的文件和目录
以‘~’结尾的文件和目录
名为cvs的文件和目录
扩展名为.tmp的文件
这是用于防止导入操作系统或其他应用程序创建的特殊和临时文件。

脚本编译顺序
Unity保留了一些项目文件夹名称来标识其内的内容具有一些特殊目的。而其中一些文件夹会影响脚本编译的编译顺序。
这些文件夹名称是:
·Assets
·Editor
·Editor default resources
·Gizmos
·Plugins
·Resources
·Standard Assets
·StreamingAssets
脚本编译有四个不同的阶段。处于哪个阶段编译由其父目录确定。
在脚本必须引用其他脚本中定义的类容的情况下,编译的顺序就非常重要了。基本规则是,
在当前阶段之后编译的任何东西都引用不到,在当前阶段之前或早期的阶段编译的任何内容都可以完全引用。 编译阶段如下:
·阶段1:编译Standard Assets、Plugin中的运行时脚本
·阶段2:编译Standard Assets、Plugin中的Editor脚本
·阶段3:编译其他不在Editor目录下的脚本
·阶段4:编译Editor目录下的脚本
该位置因平台而异,请注意区分大小写

上一篇下一篇

猜你喜欢

热点阅读