需要动态加载的文件放入,打包时,在这个文件夹里的文件不管有没有被使用,都会被打包出来。
Plugins:
插件目录,该目录编译时会优先编译,以便项目中调用。
Editor:
该目录下的代码可调用Unity Editor 的API,存放扩展编辑器的代码。编译时不会被打包到游戏中。
Standard Assets
该文件夹下的文件会优先被编译,以便项目调用,它与Plugins一样,打包时会被编译到同一个.sln文件里。
SteamingsAssets
该目录下的文件会在打包时打包到项目中去,与Resources一样不管有没有用到的文件,在打包时都会被打包出来。
Resurces与SteamingsAssets的区别
Resurces下 文件在打时会进行压缩与加密,但是StremingsAssets下的文件是直接被打包出来。
Resurces中的材质球、预制体等资源,会在打包时自动寻找引用资源,打包到Resurce中。
1.隐藏文件夹
以 . 开头的文件夹会被Unity忽略.在这种文件夹中的资源是不会被导入的,且脚本不会被编译.也不会出现在Project视图中.这种文件夹我们可以在资源浏览器中找到这些文件.
2.Standard Assets
在这个文件夹中的脚本最先被编译.一般是放一些Unity内置的资源.在这个文件夹中的脚本会被导出到Assembly-CSharp-firstpass/Assembly-UnityScript-firstpass/Assembly-Boo-firstpass项目中.依语言而定.在这个文件夹中的脚本比其他脚本都要先编译.将脚本放在这个文件夹里就可以用C#脚本访问其他语言的脚本
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("Guide.txt") as TextAsset
6.Plugins
Plugins文件夹用来放native插件.他们会被自动包含进build中去,注意这个文件夹只能是Assets文件夹的直接子目录.例如:
Windows: dll文件
Mac OS X: bundle文件
Linux下: .so文件
和StandardAssets一样,这里的脚本会更早编译,并且允许他们呗之外的脚本访问.
(1).Plugins/x86||x86_64(一般PC平台)
如果为32bit或64bit平台创建游戏,那么这个文件下的nativeplugin文件会被自动的包含在游戏build中.如果这个文件夹不存在,则Unity会查找Plugins文件夹下的nativeplugins
如果要创建universalbuild,建议你同时使用这两个文件夹.然后将32bit和64bit的nativeplugins放进相应的文件夹中
(2).Plugins/Android
在这个文件夹里放入Java.jar文件,用于Java语言的plugins.
.so文件也会被包含进来
官方文档:https://docs.unity3d.com/Manual/PluginsForAndroid.html
(3).Plugins/iOS
在这个文件夹放入 .o、.m、.mm、.c、.cpp等文件,一般在IOS平台导出对应的文件
官方文档:https://docs.unity3d.com/Manual/PluginsForIOS.html
7.Resources
Resources文件夹允许你在脚本中通过文件路径和名称来访问资源.放在这一文件夹的资源永远被包含今build中,即便它没有被调用.因为Unity无法判断脚本中有没有访问了其中的资源.项目中可以有多个Resources文件夹,因此不建议在多个文件夹中放同名的资源,一旦build游戏,Resources文件夹中的所有资源都被打包进游戏存放资源的archive中.这样在游戏的build中就不存在Resources文件夹啦.即便脚本中仍然使用了资源在项目中的路径
官方文档:https://docs.unity3d.com/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的默认网页.这个文件夹中的脚本都不会被编译.这个文件夹必须作为Asstes文件夹的直接子目录
10.StreamingAssets
这里的文件会被拷贝到build文件中,不会修改(移动和网页版不同,他们会被嵌入到最终的build文件中).他们的路径会因平台而有差异,但都可以通过Application.streamingAssetPath来访问.
例如:有些游戏为了让所有的资源全部使用AssetBundle,会把一下初始的assetbundle放在StreamingAssets目录下,StreamingAsset目录下的资源都是不压缩的,而且他比较大,会占空间
Resources是untiy特殊文件夹,生成包后是不存在外部路径的,因为他是内部动态加载资源目录,打包后里面所有资源生成assets资源,也就不存在这个文件路径了,代码中调用直接Resources.Load就能加载,如果要是放在外部,可以自己写路径,或者放在StreamingAssets文件夹欢迎分享,转载请注明来源:内存溢出
评论列表(0条)