【Unity入门计划】基本概念(4)-预制件 Prefab
目录
官方文档
相关教程
我的Unity版本
1 预制件的作用
2 预制件的定义
3 预制件的优点
4 一般使用的场景
5 预制件的创建&使用
5.1 创建
5.2 使用
6 预制件的编辑
6.1 更改预制件本身
6.2 更改实例对象
6.3 实例属性优先于预制件
7 预制件变体 Prefab Variant
7.1 预制件特点
7.2 预制件的创建
8 预制件unpack成对象
官方文档
预制件 - Unity 手册
相关教程
基本概念-Prefab
我的Unity版本
2021.3.6
1 预制件的作用
unity中我们通常需要给游戏对象添加一些比如刚体、碰撞体等组件实现一些效果。但当遇到同一个NPC、场景中的道具在场景中需要被重复使用时,如果只是一步一步重复添加组件,效率会非常低,这是我们就希望把同一种需要复制的对象打包起来,需要用的时候直接复制粘贴即可。
预制件就是unity提供给用户的一个实现上述操作的资源类型。
2 预制件的定义
- 预制件(prefab)是一种assert资源类型;
- 预制件用于存储游戏对象(GameObject)对象以及配套的组件和属性;
- 预制件充当一种模板功能,是一个可重复使用的资源模板;
3 预制件的优点
既然它是一个打包好的资源模板,那么优点就清晰可见了。它可以轻松的大范围的修改项目的内容,无需对每个单一对象进行重复编辑,节省了大量的时间。
4 一般使用的场景
- 环境资源——很多的山、树等,会预先做好再导成预制件
- 武器的炮弹——大炮发射的实例化炮弹预制件
- 玩家——玩家预制件会被放在各个关卡的起点位置
5 预制件的创建&使用
5.1 创建
- 在文件夹右键 -> Create -> Prefab,就可以创建一个预制件;
- 将场景中想要实现复制的对象拖到这个预制件资源 -> 弹出提示框没选择Replace -> 就创建了一个可重复使用的资源模板;
- 此时, 原本的对象前面的图标也改变了,从线框 -> 实心 ;属性面板也多了Prefab属性。
5.2 使用
使用就很简单了,要么直接拖入Scene视图,要么ctrl+D复制即可。
6 预制件的编辑
6.1 更改预制件本身
双击进入预制件,就会把关注集中在预制件本身,给他做修改、添加组件即可。同时预制件设置的操作,会在场景中所有由预制件生成的实例对象做更改。
6.2 更改实例对象
如果在预制件生成的实例对象做更改,修改后,需要在Inspector面板上方的Prefab栏 -> Overrides做操作
- Revert All——还原到预制件
- Apply All——修改预制件的值
还可以单独做更改,同时对应的Revert和All意思跟上面的一样。
6.3 实例属性优先于预制件
需要注意的点是,如果在预制件生成的实例对象里对某个值做了修改以后,这个值就会被覆盖掉,再在预制件中进行修改是不会改变当前实例对象的值的。
这个很好理解,预制件相当于所有子对象的父类,生成的实例子对象是子类,父类的操作总是在子类之前的,因此子类就具有修改所谓的优先性,属性的修改也优先于预制件。
7 预制件变体 Prefab Variant
直接引用UP教程举例的关系图:
预制件变体是由原来预制件创建出来的新的预制件,在保留了原来预制件的基础上,还添加了新的特性,这些预制件变体还可以变出自己的变体,再由这些变体生成对应的不同的对象。
7.1 预制件特点
- 预制件变体继承基础预制件的属性
- 预制件变体的属性覆盖优先于基础预制件
7.2 预制件的创建
- Project面板 -> 右键想要当作基础预制件的Prefab -> Create -> Prefab Variant
- 直接拖入想要当作预制件变体的对象,会有提醒是否创建预制件变体
8 预制件unpack成对象
如果不想让预制件继续充当预制件了,在hierarchy窗口右键,Prefab -> unpack,就能解包成一个单纯的游戏对象了。
【Unity入门计划】基本概念(4)-预制件 Prefab相关推荐
- 【Unity入门计划】基本概念(8)-瓦片地图 TileMap 01
目录 1 TileMap概念 主要思想 优点 创建的层级 2 Unity中的TileMap 2.1 自动父级Grid 网格 2.2 Sprite精灵 2.3 Tile 瓦片 2.4 Tile Pale ...
- 【Unity入门计划】制作RubyAdventure03-使用碰撞体触发器实现世界交互
目录 8 添加生命系统 演示效果 9 使用触发器实现吃血包 9.1 添加一个可以被吃掉的血包 10 使用触发器添加伤害区域 10.1 设置伤害区域 10.2 设置无敌时间 关于无敌时间的讨论 10.3 ...
- 【Unity入门计划】界面介绍(1)-Scene视图
目录 正式记录前的废话 Unity的坐标系 2D/3D视图转换 视图的移动.旋转.缩放 移动 旋转 缩放 选中游戏对象Game Object 单选 多选 设置不允许选中 场景可见性 游戏对象的移动.变 ...
- 【Unity入门计划】基本概念(1)-2D刚体Rigidbody 2D
目录 官方参考文档 我的Unity版本 Rigidbody刚体的作用 Rigidbody 2D的添加 Rigidbody的面板属性 Body Type 刚体类型 Body Type -> Dyn ...
- 【Unity入门计划】基本概念(6)-精灵渲染器 Sprite Renderer
目录 官方文档 1 Sprite 精灵 2 Sprite Renderer 精灵渲染器 2.1 Sprite 精灵 2.2 Color 着色 2.3 Filp 翻转 2.4 Draw Mode 当前的 ...
- 【Unity入门计划】playground项目:2D飞船移动小游戏
目录 跟学的Unity教程 我的Unity版本 1 导入playground项目资源 2 创建新场景 3 创建玩家飞船 3.1 调整大小位置 3.2 调整Game视图的背景 3.3 Inspector ...
- 【Unity入门计划】CreatorKitFPS:第一人称射击3D小游戏
目录 Unity学习教程 1 添加并载入项目资源 添加项目资源 载入到Unity 2 载入Scene 3 从预制体添加射击Targets 4 管理游戏对象 4.1创建分组关系 4.2 区分相对坐标&a ...
- 【Unity入门计划】Unity2D动画(2)-脚本与混合树实现玩家角色动画过渡
目录 1 玩家角色移动伴随的简单动画 1.1 行走 1.2 停留 1.3 攻击敌人(触发型) 1.4 受伤(触发型) 1.5 跳跃 1.6 下蹲 2 动画间的过渡 3 过渡的判断逻辑 3.1 行走与停 ...
- 【Unity入门计划】Unity2D动画(1)-动画系统的组成及功能的使用
目录 Unity动画 1 Unity动画系统:MEcanim 该动画系统中常见的术语 2 游戏对象的Animator组件 组件属性 Controller 控制器 Avatar 骨骼 Apply Roo ...
最新文章
- docker mysql忘记密码_docker基于mysql镜像构建mysql容器忘记密码解决办法
- 高级转录组分析和R数据可视化专题研讨会(2019.12)
- 8月书讯:喜悦翩然而至
- 统计应用计算机基础,计算机基础应用试题及答案参考
- C提高_day03_const小专题
- uvm 形式验证_一种基于UVM的总线验证方法与流程
- 大数据WEB阶段(四)JavaScript
- 3、play中的模板引擎
- 论文浅尝 - EMNLP2020 | 基于规则引导的协作 agent 知识图谱推理学习
- 把github转至gitee
- 数据库系统概论-作业(设计本科生事务管理数据库)
- spring3 运行起来(即做个demo)所需要的jar包
- 智华计算机加密,智华天成V1.0计算机终端保密检查系统软件 国密装备目录**
- TCP/UDP测试工具大全
- 微型计算机中的中央处理器由什么组成,微型计算机主机由什么组成
- word的表格取消边框后还有虚线怎么办
- Linux下安装DB2数据库步骤及常用命令
- 搜索引擎如何判定站群是否作弊?
- direction: rtl;
- iOS15.2 注册相册变化通知未给相册权限导致崩溃 [PHPhotoLibrary.sharedPhotoLibrary registerChangeObserver:self]
热门文章
- 【Discuz】去除注册时的邮箱
- BGP在数据中心的应用6——BGP在服务器上的应用
- keil报错解决:Loading PDSC Debug Description failed for STMicroelectronics STM32Fxxxxxxx
- win10离线安装vs2017
- vue 中 canvas 和svg合用制作地图
- oracle 9i exp 导入11g,Oracle教程:使用exp/imp 导入11g数据到9i
- Hbase API应用 表/列 链接diea增删改查
- 安卓与ios界面设计规范
- 转载:计算机经典书籍指南
- vue2引入阿里巴巴矢量图标库字体