赞
踩
Unity本身的功能已经很强大了,但是由于某些项目的特殊需求,需要拓展编辑器来提高工作效率,让程序去代替人工进行一些比较繁琐的操作,减少一些出错的可能性,比如我们可以写一些工具来定制更改动画曲线,也可以写工具来一键打包资源,压缩资源,检测资源冗余,统计资源信息等等。拓展编辑器也可以展示一些效果,比如人物模型的碰撞框可视化,地图网格AI的可视化等等,拓展编辑器也可以送入AssetStore进行售卖,获取经济收益。
我们首先创建一个Unity项目,目录如下
然后用VS打开,如下图,可以看到生成了四个工程文件,他们的编译顺序为①②③④的顺序
如果我们用Unity自带的MonoDevelop打开后,还可以发现上述4个工程之间的引用关系是这样的:
引用关系图:
由此我们可以得出,我们写的一些Library库可以根据规则编译到Assembly-CSharp-fiistpass工程中,这样可以保证这个库是纯净的,不依赖于任何其他的工程。另外我们在Edito下写的代码不会被我们运行时候的代码使用到,因而在打包应用程序时,Assembly-CSharp-Editor和Assembly-CSharp-Editor-firstpass是不会被打包到应用程序中的。
Resources
一般用来放置游戏运行时动态的资源,比如我们创建的一些特效,UI会放到这个目录下,运行时通过Resource.Load来加载这些资源。
StreamingAsset
这部分的内容在游戏发布的时候,会不经过任何处理地放到安装包里,一般放置视频,音频或者一些AssetBundle,这个目录在运行时是只读的,通过Application.streamingAssetsPath获取到。
Plugins
一般放置和平台相关的Native库,比如游戏中需要android里面的native弹框,那么我们可以用andriod导出 jar 包放到Plugins/Android目录下,也可以在Plugin下面创建Ios目录来放置一些ios的库.另外在Unity编译安装包的时候,会按照不同平台把不同目录下的内容放到不同的平台下,比如Android包里不会包含ios目录里面的内容。
Editor
一般放置和编辑器相关的脚本和资源,这些脚本只能在编辑器下使用,不会被打包到安装包里面。
Editor Default Resources
一般放置编辑器里面用到的动态资源,我们可以用EditorGUIUtility.Load来读取相关资源,这个目录要放置在Assets这个根目录下。
Gizmos
一般放置图片,图标icon,用于在Scene场景中给特定的gameObject显示特定的icon。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。