Unity工程里的那些东西

简介: 1、特殊文件夹(unity doc : Special Folders)Unity工程根目录下,有三个特殊文件夹:Assets、Library、ProjectSettingsAssetsUnity工程中所用到的所有Asset都放在该文件夹中,是资源文件的根目录,很多API都是基于这个文件目录的,查找目录都需要带上Assets,比如AssetDatabase。

1、特殊文件夹(unity doc : Special Folders)
Unity工程根目录下,有三个特殊文件夹:Assets、Library、ProjectSettings

Assets

Unity工程中所用到的所有Asset都放在该文件夹中,是资源文件的根目录,很多API都是基于这个文件目录的,查找目录都需要带上Assets,比如AssetDatabase。

Library

Unity会把Asset下支持的资源导入成自身识别的格式,以及编译代码成为DLL文件,都放在Library文件夹中。

ProjectSettings

编辑器中设置的各种参数

下面都是存在Assets目录下的文件的了。

Editor

为Unity编辑器扩展程序的目录,可以在根目录下,也可以在子目录下,只要名字叫“Editor”,而且数量不限。Editor下面放的所有资源文件和脚本文件都不会被打进包中,而且脚本只能在编辑器模式下使用。一般会把扩展的编辑器放在这里,或只是编辑器程序用到的dll库,比如任务编辑器、角色编辑器、技能编辑器、战斗编辑器……以及各种小工具。

Editor Default Resources

名字带空格,必须在Assets目录下,里面放编辑器程序用到的一些资源,比如图片,文本文件等。不会被打进包内,可以直接通过EditorGUIUtility.Load去读取该文件夹下的资源。

Gizmos

Gizmos.DrawIcon在场景中某个位置绘制一张图片,该图片必须是在Gizmos文件夹下。

void OnDrawGizmos() {
Gizmos.DrawIcon(transform.position, "0.png", true);
}
OnDrawGizmos是MonoBehaviour的生命周期函数,但是只在编辑器模式下每一帧都会执行。Gizmos类能完成多种在场景视图中绘制需求,做编辑器或调试的时候经常会用到,比如在场景视图中绘制一条辅助线。(用Debug.DrawLine,Debug.DrawRay也可以绘制简单的东西)

Plugins

该文件夹一般会放置几种文件,第三方包、工具代码、sdk。

plugin分为两种:Managed plugins and Native plugins
Managed plugins:就是.NET编写的工具,运行于.NET平台(包括mono)的代码库,可以是脚本文件,也可以本身是DLL。NGUI源码就放在该文件夹下面的。
Native plugins:原生代码编写的库,比如第三方sdk,一般是dll、so、jar等等。

该文件夹下的东西会在standard compiler时编译(最先编译),以保证在其它地方使用时能找到。

Resources

存放资源的特殊文件夹,可以在根目录下,也可以在子目录下,只要名字叫“Resources”就行,比如目录:/xxx/xxx/Resources 和 /Resources 是一样的,而且可有多个叫Resources的文件夹。Resources文件夹下的资源不管用还是不用都会被打包进.apk或者.ipa,因为Unity无法判断脚本有没有访问了其中的资源。需要注意的是项目中可以有多个Resources文件夹,所以如果不同目录的Resources存在同名资源,在打包的时候就会报错。

Resources中全部资源会被打包成一个缺省的AssetBundle(resources.assets)。

在该文件夹下的资源,可以通过Resources类进行加载使用。API地址

Standard Assets

存放导入的第三方资源包。

StreamingAssets

该文件夹也会在打包的时候全部打进包中,但它是“原封不动”的打包进去(直接拷贝到的包里)。游戏运行时只能读不能写。

不同的平台最后的路径也不同,可以使用unity提供的Application.streamingAssetsPath,它会根据平台返回正确的路径,如下:

Mac OS or Windows:path = Application.dataPath + "/StreamingAssets";
IOS:path = Application.dataPath + "/Raw";
Android:path = "jar:file://" + Application.dataPath + "!/assets/";

我们一般会把初始的AssetBundle资源放在该文件夹下,并且通过WWW或AssetBundle.LoadFromFile加载使用。

更多unity2018的功能介绍请到paws3d爪爪学院查找。

相关文章
|
开发工具 图形学 git
Unity 之 加载工程卡在音频处不动(Unity识别不出音频文件)
在Git上克隆同事上传的工程,打开是卡在音频处不动解决方案分享。
654 0
Unity 之 加载工程卡在音频处不动(Unity识别不出音频文件)
|
缓存 图形学
Unity 之 关于UnityHub无法打开项目的问题(弹出Unity启动界面有退回到Hub选择工程界面)
弹出Unity启动界面有退回到Hub选择工程界面方案一:万能的重启大法;方案二:未开启许可证;方案三:终极奥义 -- 弃用Hub
3041 0
Unity 之 关于UnityHub无法打开项目的问题(弹出Unity启动界面有退回到Hub选择工程界面)
|
4月前
|
缓存 API 开发工具
Unity——工程与资源
Unity——工程与资源
|
开发工具 vr&ar 图形学
Pico SDK导入Unity工程
2022VR国赛即将开始,对于Pico与Unity的使用已经很熟练了,想为下一届参赛选手及Unity 3D引擎爱好者或者是Pico开发者 聊一下自己的理解,目前Unity引擎的主流打包平台设备就是Pico和Steam VR,我参加的国赛采用的是Pico设备,所以今天就先讲一下Pico
543 0
Pico SDK导入Unity工程
|
图形学 Android开发
Unity使用心得 之 ✨ Unity同一工程打包出多个安卓apk,不相互覆盖按照安装说明
Unity使用心得 之 ✨ Unity同一工程打包出多个安卓apk,不相互覆盖按照安装说明
Unity使用心得 之 ✨ Unity同一工程打包出多个安卓apk,不相互覆盖按照安装说明
|
网络安全 开发工具 图形学
使用SourceTree管理Unity工程推送报错 “ RPC failed; curl 55 Send failure: Connection was aborted“
使用SourceTree管理Unity工程推送报错 “ RPC failed; curl 55 Send failure: Connection was aborted“
1010 0
使用SourceTree管理Unity工程推送报错 “ RPC failed; curl 55 Send failure: Connection was aborted“
|
Java 开发工具 Android开发
Unity 之 导出为Android工程及在AndroidStudio中使用记录
从Unity工程导出为Android工程,将导出工程在AS打开,并调试其编译通过,Unity和Android 互调
606 0
Unity 之 导出为Android工程及在AndroidStudio中使用记录
|
Android开发 图形学
Unity 之 AndroidStudio打开导出Android工程详解
本文记录使用AndroidStudio打开Unity导出的Android工程, 并进行调试, 打出APK
749 0
Unity 之 AndroidStudio打开导出Android工程详解
|
图形学 C++ C#
Unity工程无代码化
Unity工程无代码化目的Unity默认是将代码放入工程,这样容易带来一些问题。 代码和资源混合,职能之间容易互相误改。 当代码量膨胀到一定程度后,代码的编译时间长到无法忍受。新版的unity支持通过asmdef来将代码分成多个dll工程,有所缓解。
1812 0