8.Unity工作原理-预设体和资源包的导入导出
8.1 知识点
预设体(预制体)
预设体是什么
预设体是 Unity 3D 提供的一种保存游戏对象组件和属性的方法。通过预设体,可以快速实例化带有不同组件的游戏对象,从而减少开发难度,提高资源的利用率和开发效率。
预设体是 Unity 中非常重要的概念,可以理解为一个游戏对象及其组件的集合。其目的是使游戏对象及其资源能够重复使用。当修改预设体时,实例也会同步修改。
创建预设体
直接将场景中的物体拖入到Project窗口的Assets文件夹目录下即可。预设体会显示为蓝色图标,通常会用一个单独的”Prefabs”文件夹进行管理。
将Assets文件夹目录下的预设体拖入Scene窗口中,可以获得多个具有相同属性的游戏对象。
使用SublimeText等文本编辑器打开预设体,本质上也是一个配置文件。
修改预设体
注意:修改预设体将应用到所有场景中已存在的预设体。
在Scene窗口添加一个球体到金字塔预设体上,Inspector窗口会显示一个覆盖按钮。点击该按钮会弹出一个窗口,其中有”Apply All”按钮。点击”Apply All”将会将修改应用到所有预设体。
在Scene窗口中修改了金字塔预设体后,可强制拖拽覆盖到预设体所在目录下以完成修改。
删除预设体中的对象会弹出一个窗口,让你跳转到预设体独有的空间中进行修改。
点击Project窗口中的预设体资源文件,或者在场景中选择一个预设体并点击Inspector窗口中的”Open Prefab”按钮,可以跳转到预设体独有的空间中修改预设体。
如果要在某个预设体的基础上创建新的预设体,可以右键解除预设体的关联,然后修改要成为预设体的对象和名称,在拖拽至Project窗口后,将会生成一个新的预设体(如果发现同名的话,会在预设体后面加上” 1”)。
解除预设体
Unpack Prefab:解散Prefab与本体的关联。此时在Hierarchy面板中,父级会变成灰色图标,表示不再是一个实例。在Inspector面板中,Prefab相关的操作也会消失。但是子级的Prefab属性仍然存在(如果子级有Prefab的话)。
Unpack Prefab Completely:完全解散Prefab,此时不管是父级还是多深的子级,全部失去与各自Prefab的关联,变成了场景中的一组对象。
相同预设体
- 拖回相同的预设体时会弹出一个窗口,询问是否要创建新的预设体。
删除预设体
- 删除预设体会导致场景中的预设体实例变成红色,表示预设体已被删除。
- 右键预设体实例并点击”Unpack Prefab”会使预设体实例变回白色,表示不再是预设体。
预设体的其他操作
右键预设体实例并选择”Show in Explorer”可以在文件夹中显示当前预设体。
右键预设体实例并选择”Open Prefab”可以直接打开预设体的空间。
资源包导入导出
在Project窗口右键选择导入或导出资源包。
点击导出资源包会弹出一个窗口,选择要导出的资源包和相关的依赖项(建议勾选),选择路径并导出成一个以.unitypackage为后缀的资源包。
将以.unitypackage为后缀的资源包直接拖拽至Project工程中,或者双击该资源包。也可以在Project窗口右键选择导入资源包。
注意:已存在的一模一样的资源不会重新导入。
8.2 练习题
将之前制作的坦克对象导出资源包以待备用
- 直接拖拽坦克对象到Project窗口
- 右键导出资源包
- 选择坦克对象,右键点击并选择导出包。
- 设置导出路径和文件名。
- 点击确定按钮导出资源包。
- 删除场景中的坦克和坦克预制体
- 将导出的资源包拖拽到Project窗口,重新生成预制体。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com