目录演变
Unity的工作目录在2018以后发生了比较大的变更,这跟Unity“减负”的计划有很大的关系。
Unity第一个版本的发布要追溯到2005年,距离现在也有了10几年了。在这么多年的迭代和演变的过程中,升级了很多的功能和规则,比如使用Animator来替代Animation,数字命名版号改为年份命名版号等,当然除了优化的部分之外,本身也在做越来越多的功能支持,甚至吸收很多外部优秀的插件,使得Unity本身越来越臃肿。“减负”无论是从官方的维护角度,还是用户的使用角度都是有必要的,因为如果功能是一体的,那么你就不得不将你用不到的部分也编译到你的发布代码里面。
当然其实你也可以使用代码裁切来剔除你不需要的库和代码,但这个使用场景有限定,并且也不能剔除Unity自身的代码库。
所以Unity的做法就是给核心部分“减负”,把所有能从核心库里剥离的功能都剥离出来,然后以“Packages”的方式进行引用。2018.3的空工程,目录结构如下所示:
可以看到,比对原来只有一个Assets目录来看,新的版本增加了一个Packages的目录,用来管理各种剥离的外部组件。
Packages
这个目录是2018新增的,Unity自动生成的Project是不能直接对这里进行管理和修改的。同时,Unity的引擎在工作目录里也是没法对它进行操作的,是一个只读的目录。
Assets
这是是Unity的主工作目录,这么多年一直都没变的,是Unity工作的基石。任何资源只有放在这个目录下才能被Unity识别和管理,不管你是纹理、模型、地形、声音、特效、代码、文本等等。也正是因为Unity的这个特性,项目的开发人员都必须基于这个目录去工作。因为所有目录的变动都会导致工程效果的变动,所有这个目录的规划就非常非常的重要。本篇文章讨论的也是这个目录的规划和布局。
Packages和Package Manager
前面说了,Packages是一个只读目录,那么如何去管理它呢?答案是Unity提供的一个Package Manager窗口。入口如下图:
<