[Unity] Unity3D 项目专属文件夹须知

查看:2573 |回复:59 | 2017-1-11 16:06:30

您需要 登录 才可以下载或查看,没有账号?注册

x
今天为大家分享一下,如何快速认识unity3d常用的一些固有文件夹。
  好吧!那么我一起来探讨一下吧!
1.   隐藏文件夹
     以.开头的文件夹会被Unity忽略。在这种文件夹中的资源不会被导入,脚本不会被编译。也不会出现在Project视图中。这种文件我们可以在资源浏览器的时候,能找到这些文件。
2.   Standard Assets
     在这个文件夹中的脚本最先被编译。一般是放一些Unity 内置的一些资源。
     这个文件夹中的脚本会被导出到Assembly-CSharp-firstpass,Assembly-UnityScript-firstpass 或 Assembly-Boo-firstpass项目中,依语言而定。
参考http://docs.unity3d.com/Documentation/Manual/ScriptCompileOrderFolders.html 。在这个文件夹中的脚本比其他脚本都要先编译。将脚本放在这个文件夹里,就可以用C#脚本来访问js脚本或其他语言的脚本。
3.   Pro Standard Assets
     和StandardAssets相同,只不过里面的文件是给Pro版本的Unity使用的。当然它的功能更为的丰富,例如一些高级内置的shader文件,只有在Pro版才能起作用。
4.   Editor
     以Editor命名的文件夹允许其中的脚本访问UnityEditor的API。如果脚本中使用了在UnityEditor命名空间中的类或方法,它必须被放在名为Editor的文件夹中。Editor文件夹中的脚本不会在build时被包含。
在项目中可以有多个Editor文件夹。[注意:如果在普通的文件夹下,Editor文件夹可以处于目录的任何层级。如果在特殊文件夹下,那Editor文件夹必须是特殊文件夹的直接子目录。]
5.   Editor Default Resources
    你可以把编辑器用到的一些资源放在这里,比如图片、文本文件、等等。它和Editor文件夹一样都不会被打到最终发布包里,仅仅用于开发时使用。你可以直接通过EditorGUIUtility.Load去读取该文件夹下的资源,例如:
  TextAsset text =    EditorGUIUtility.Load(“1.txt")as TextAsset;
6.   Plugins
Plugins文件夹用来放native插件。它们会被自动包含进build中去。注意这个文件夹只能是Assets文件夹的直接子目录。
     例如:
Windows:dll文件;
    Mac OS X:bundle文件;
    Linux下:.so文件。
和StandardAssets一样,这里的脚本会更早的编译,并且允许它们被之外的脚本访问。
6.1 Plugins/x86 || x86_64   (一般PC平台)
         如果为32bit或64bit平台创建游戏,那么这个文件夹下的nativeplugin文件会被自动的包含在游戏build中。如果这个文件夹不存在,则Unity会查找Plugins文件夹下的nativepluglins。
           如果要创建universalbuild,建议你同时使用这两个文件夹。然后将32bit和64bit的nativeplugins放进相应的文件夹中。
   6.2 Plugins/Android
      在这个文件夹里放入Java.jar文件。用于java语言的plugins。.so文件也会被包含进来。
      官方文档:http://docs.unity3d.com/Documentation/Manual/PluginsForAndroid.html
   
6.3 Plugins/iOS
       在这个文件夹放入.o、.m 、 .mm 、.c 、.cpp等文件,一般在IOS 平台导出对应的文件。
官方文档:
http://docs.unity3d.com/Documentation/Manual/PluginsForIOS.html
7.   Resources
     Resources文件夹允许你在脚本中通过文件路径和名称来访问资源。放在这一文件夹的资源永远被包含进build中,即使它没有被使用。因为Unity无法判断脚本有没有访问了其中的资源。项目中可以有多个Resources文件夹,因此不建议在多个文件夹中放同名的资源。一旦build游戏,Resources文件夹中的所有资源被打包进游戏存放资源的archive中。这样在游戏的build中就不存在Resources文件夹了。即使脚本中仍然使用了资源在项目中的路径。
官方文档:http://docs.unity3d.com/Documentation/Manual/LoadingResourcesatRuntime.html
注意:
当资源作为脚本变量被访问时,这些资源在脚本被实例化后就被加载进内存。如果资源太大,你可能不希望它被这样加载。那么你可以将这些大资源放进Resources文件夹中,通过Resources.Load来加载。当不再使用这些资源了,可以通过Destroy物体,再调用Resources.UnloadUnusedAssets来释放内存。
特点:
    (1).文件夹内资源打包集成.asset 文件里面,例如一些shader/material/prefab等资源文件;
    (2).里面的资源只能是只读,不能动态修改,一般动态的更新的资源不雅放在这个文件夹内;
    (3).通过主线程加载;
    (4). Resources.Load();加载资源
         Resources.LoadAll();加载所有资源
         Resources.LoadAsync();异步加载资源
8.   Gizmos
    Gizmos文件夹存放用Gizmos.DrawIcon方法使用的贴图、图标资源。放在Gizmos文件夹中的贴图资源可以直接通过名称使用,可以被Editor作为gizmo画在屏幕上。这里还是要说说OnDrawGizmos()方法,只要脚本继承了MonoBehaviour后,并且在编辑模式下就会每一帧都执行它。发布的游戏肯定就不会执行了,它只能用于在scene视图中绘制一些小物件。比如要做摄像机轨迹,那么肯定是要在Scene视图中做一个预览的线,那么用Gizmos.DrawLine和Gizmos.DrawFrustum就再好不过了。
9.   WebPlayerTemplates
    用来替换webbuild的默认网页。这个文件夹中的脚本都不会被编译。这个文件夹必须作为Assets文件夹的直接子目录。
10.  StreamingAssets
    这里的文件会被拷贝到build文件夹中,不会修改(移动和网页版不同,他们会被嵌入到最终build文件中)。它们的路径会因平台而有差异,但都可以通过Application.streamingAssetsPath来访问。
   例如:有些游戏为了让所有的资源全部使用assetbundle,会把一些初始的assetbundle放在StreamingAssets目录下,StreamingAssets目录下的资源都是不压缩的,而且它比较大会占空间。
10.png
那么就先介绍到这里,欢迎加我的学习交流群:575561285。

评分

参与人数 3元素币 +18 活跃度 +19 展开 理由
小小橘子 + 3 + 9 阅贴无数,楼主最强!
Marie + 10 + 10 先加分,慢慢來看
狼之独步 + 5 阅贴无数,楼主最强!

查看全部评分

2017-1-11 16:06:30  
 赞 赞 5

使用道具 登录

59个回答,把该问题分享到群,邀请大神一起回答。
2#
元素帖子强,满满正能量!
回复 收起回复
2017-1-12 08:40:52   回复
 赞 赞 3

使用道具 登录

4#
{:1_144:}
回复 收起回复
2017-1-12 19:21:11   回复
 赞 赞 3

使用道具 登录

5#
{:1_144:}
回复 收起回复
2017-1-12 19:21:15   回复
 赞 赞 3

使用道具 登录

6#
归类的 不错
回复 收起回复
2017-1-13 15:04:38   回复
 赞 赞 3

使用道具 登录

7#
这个社会需求楼主这样对品质有追求的人才!
回复 收起回复
2017-1-13 21:17:03   回复
 赞 赞 3

使用道具 登录

8#
文能提笔控萝莉
回复 收起回复
2017-2-9 15:52:40   回复
 赞 赞 3

使用道具 登录

9#
回复 收起回复
2018-8-2 19:34:32   回复
 赞 赞 3

使用道具 登录

10#
收了~感谢分享!
回复 收起回复
2018-10-16 10:08:07   回复
 赞 赞 3

使用道具 登录

11#
感谢分享
回复 收起回复
2018-10-16 10:35:00   回复
 赞 赞 3

使用道具 登录

12#
谢谢分享
回复 收起回复
2018-10-16 11:19:44   回复
 赞 赞 3

使用道具 登录

13#
感谢分享感谢分享
回复 收起回复
2018-10-16 14:57:27   回复
 赞 赞 3

使用道具 登录

14#
unity5.x烘焙总结
回复 收起回复
2018-10-16 20:15:56   回复
 赞 赞 3

使用道具 登录

15#
我们先定一个能达到的小目标,先赚它一亿元素币
回复 收起回复
2018-11-16 13:48:49   回复
 赞 赞 3

使用道具 登录

16#
感谢楼主分享资源!楼主辛苦了!
回复 收起回复
2018-11-17 21:55:36   回复
 赞 赞 3

使用道具 登录

17#
好教程!感谢楼主分享!
回复 收起回复
2018-11-17 23:20:22   回复
 赞 赞 3

使用道具 登录

18#

从业不识微元素,做遍项目也枉然
回复 收起回复
2018-11-19 14:35:16   回复
 赞 赞 3

使用道具 登录

19#
谢谢楼主分享。
回复 收起回复
2018-11-19 14:41:51   回复
 赞 赞 3

使用道具 登录

20#
666666666
回复 收起回复
2018-11-19 15:41:01   回复
 赞 赞 3

使用道具 登录

CG 游戏行业专业问题

Unity3D技术手机游戏引擎手游引擎
123下一页
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表