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则会自动同步到该修改结果。
图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所示。
图1-25 导入导出Unity资源包
1.6.3 管理Unity插件
当创建一个Unity工程后,会发现在工程的Project窗口中会自动添加一个Packages选项,通过它我们可以查看在当前的工程中使用了哪些功能模块或插件。
Unity目前支持的功能模块很多,但并不是每个游戏都需要所有的功能,为了使开发更加灵活,Unity内置的很多功能都可以作为模块导入或移除,在菜单栏选择【Window】→【Package Manager】打开资源包管理窗口,选中右上角的【Remove】或【Disable】即可移除或取消某个功能模块,也可以在这里安装或卸载由Asset Store下载的插件,如图1-26所示。
图1-26 管理功能模块和插件