![Unity 3D\2D手机游戏开发:从学习到产品(第4版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/438/47217438/b_47217438.jpg)
1.6 预置文件Prefab和资源管理
1.6.1 创建Prefab
Unity中的Game Object作为游戏中的基本元素是没有功能的,通常需要给Game Object添加各种组件,如脚本、物理碰撞或动画控制器等,当添加了这些组件后,可能还需要对组件的参数进行设置,但是如何重用这些设置呢?这时就要用到Prefab(预制体),我们可以将在场景中编辑的Game Object制作成一个Prefab保存在工程中,这样就可以随时拿来重用了。
创建Prefab非常简单,当在场景中完成对Game Object的配置后,只要将其拖动到Project窗口中即创建了Prefab,如图1-24所示。这时Project窗口中的Prefab与场景中的实例是相关联的。
当创建好Prefab后,有几条规则如下:
(1)删除场景中的实例不会影响到Project窗口中的Prefab。
(2)如果修改了场景中的实例,选择Inspector窗口右上角的【Prefab】→【Apply】,Project窗口中保存的Prefab则会自动同步到该修改结果。
![](https://epubservercos.yuewen.com/48ECB9/26581942401447906/epubprivate/OEBPS/Images/Figure-P29_3789.jpg?sign=1738981870-ZJKu53O6pVmgWgrQi1bauaYUZ43u1dvG-0-89f8640f37b1fc6bd67c7bb9b051cdc7)
图1-24 创建Prefab
(3)如果修改了场景中的实例,选择Inspector窗口右上角的【Prefab】→【Revert】,则会返回到Prefab的设置。
(4)如果修改了Prefab的某项设置,场景中的实例又没有修改过该项设置,场景中的实例则会自动同步到与Prefab相同的设置。
1.6.2 Unity资源包
将外部资源导入Unity的最直接方式是将资源复制到当前工程Assets目录内,资源可以是任何类型,比如一个.FBX格式的模型文件、一张图片等。在Unity编辑器的Project窗口右击,在弹出的菜单中选择【Show in Explorer】可以快速打开资源管理器浏览工程内的资源。
当我们在Unity编辑器内制作完成一个Prefab,如果需要在另一个Unity工程中重用该Prefab,不能只是将Prefab复制到另一个工程中,而是要将Prefab导出为Unity专用的资源包,方法是在Unity编辑器的Project窗口选中Prefab或其他任何资源,右击,在弹出的菜单中选择【Export Package…】将资源导出为Unity专用的资源包,选择【Import Package】→【Custom Package…】可以将Unity资源包导入到当前工程,如图1-25所示。
![](https://epubservercos.yuewen.com/48ECB9/26581942401447906/epubprivate/OEBPS/Images/Figure-P29_3801.jpg?sign=1738981870-YyVODeCllbffTjWELPZNV0MbSWP4SfI2-0-a5f57d3f6e731c2eb752538f63b18425)
图1-25 导入导出Unity资源包
1.6.3 管理Unity插件
当创建一个Unity工程后,会发现在工程的Project窗口中会自动添加一个Packages选项,通过它我们可以查看在当前的工程中使用了哪些功能模块或插件。
Unity目前支持的功能模块很多,但并不是每个游戏都需要所有的功能,为了使开发更加灵活,Unity内置的很多功能都可以作为模块导入或移除,在菜单栏选择【Window】→【Package Manager】打开资源包管理窗口,选中右上角的【Remove】或【Disable】即可移除或取消某个功能模块,也可以在这里安装或卸载由Asset Store下载的插件,如图1-26所示。
![](https://epubservercos.yuewen.com/48ECB9/26581942401447906/epubprivate/OEBPS/Images/Figure-P30_3817.jpg?sign=1738981870-jofocMEkrj9x8tPdfx0IPE5RrRM0ekN4-0-ce64d421eb7114311b6ae73ce2832898)
图1-26 管理功能模块和插件