prefabs 预设体是一个游戏物体及其组件的集合。

Unity prefab系统将游戏物体所有的组件,属性值和子物体作为一个可重复使用的资源,并且允许你新建,配置,存储这样一个游戏物体。预制资产充当模板,您可以在该模板中在场景中创建新的预制实例。

prefabs一般用在如非玩家角色(NPC),场景中的多个位置使用道具的或项目中的多个场景中使用的道具。

设置预设体和直接复制游戏物体的区别:

1、复制要求场景中先存在被复制的游戏对象,而预设体仅仅需要提前制作好预设体,场景中有无该游戏物体不重要。

2、复制后的游戏物体不会随着被复制物体的改变而改变,两者是相互独立,不受影响的,而预设体实例化的游戏物体会随着预设体的改变而改变,在一定条件下可以对预设体进行改变。

对Prefab所做的任何编辑都会自动反映在它的实例中,使您可以轻松地对整个项目进行广泛的更改,而无需对资产的每个副本重复进行相同的编辑。但对于实例,我们也可以对其进行覆盖,

使用Prefabs,可以在运行时实例化开始时不存在于场景中GameObjects, - 例如,在游戏过程中的恰当时刻出现的电,特效,射弹或NPC。

prefabs Mode预制模式,双击project下的预制体,或者在Hierarchy下选择预设体实例对象,点击右侧展开小箭头或者在Inspector下点击open按钮,即可打开预制模式,在此模式下对预设体进行编辑,默认的prefabs背景是一个空白的场景,我们也可以选择一个特定场景,这样可以根据它在场景中的效果更好的修改它,且其他游戏物体都是不可选择的,若要改变:Edit->Project Setting。

Instance overrides:实例覆盖,对于预设体的实例对象,我们可以稍作修改,以满足我们的不同需求,而这种修改有局限,只包括以下几种情况:1、重新覆盖属性值 2、增减组件3、增加子物体。

不可以删除子物体,但可以关闭该物体,这就是第一种情况了(1、重新覆盖属性值)。

针对修改的情况,Unity也会有不同的标记,

1、如果我们在Inspector窗口对prefabs实例的属性值进行了修改,则该值会粗体显示,且左侧会有蓝色细条显示,如图:

右击该属性,可重置或者应用 到预设体中。

2、增减组件,在Inspector面板上会有加号或者减号。

3、增加子物体,在Hierarchy面板上新加的子物体会有一个小小的加号。

Prefab实例上的重写属性值始终优先于Prefab Asset的值。这意味着如果更改Prefab资产上的属性,则它对覆盖该属性的实例没有任何影响。

Nested prefabs:嵌套预设体 预设体可以嵌套,在prefab Mode下,拖进去就可以啦。

创建预设体变体:Prefab Variant继承了另一个Prefab(base 基)的属性,。对Prefab Variant进行的覆盖优先于Prefab的基础值。预制变体可以使用任何其他预制件作为其基础,包括模型预制件或其他预制变体。我觉得此处类似于类的继承,通过对预设体的改变创造出新的预设体变体,来满足我不同的开发需求。

创建的方法有:1、在Project面板,选择prefabs,右击,新建一个prefab variant。或者是在Hierarchy面板将预设体实例拖到Project面板上,在对话框弹出的时候选择变体。

Unpacking prefab :打开预设体实例。即在Hierarchy 面板上将预设体实例转为普通游戏物体,让它和预设体不再有联系,这是创建一个预设体的逆过程。

!如果您打开包含嵌套预制件的预制件,则嵌套的预制件仍然是预制件实例,并且仍然具有指向其各自预制件资产的链接。

!如果打开的是一个Prefab Variant,根将会有一个新的Prefab实例,它是基预制件的一个实例。

在运行状态实例化一个预设体:和使用代码重新创建一个游戏物体相比,实例化一个预设体有更多益处:

1、仅需要一行代码

2、在Scene面板、Inspector面板和Hierarchy面板可以快速轻松地设置,测试和修改预设体。

3、改变实例化的对象无需改变代码。

此处不太理解,明日再学习啦,晚安!

Unity Prefabs 预设体相关推荐

  1. Unity批量预设体替换材质球

    using System.Collections; using System.Collections.Generic; using UnityEditor; using UnityEngine; us ...

  2. Unity -- 材质-Material和预设体-Prefabs

    材质(Materials)用来把网格(Mesh)或粒子渲染器(Particle Renderers)贴到游戏对象上.他们在定义对象怎么被显示发挥重要组成部分.材质包括用于呈现网状或颗粒着色器的参考,所 ...

  3. Unity(贴图、材质、预设体)

    我们创建一个地形(Terrain),在Inspector栏下就有个Terrain的组件,其功能是可以编辑地形, 首先橙色箭头所指的按钮,其功能可以设置地形的限高,地形的大小等待. 蓝色箭头所指的按钮, ...

  4. unity项目:坦克大战:炮弹预设体

    给炮弹预设体添加刚体和碰撞体组件和一个脚本. 炮弹预设体就是个球,生成点在坦克的炮筒上,在炮筒上创建一个空对象来标记生成位置,坦克的前方是炮弹的飞行方向. using UnityEngine;publ ...

  5. 笔记14 灯光、预设体、3d物体的事件、碰撞体、刚体、炸箱子、触发器、物理材质、射线

    笔记14 灯光.预设体.3d物体的事件.碰撞体.刚体.炸箱子.触发器.物理材质.射线 灯光 基本项 烘焙 灯光的种类 Lighting窗口 预设体 了解预设体 利用代码操作预设体 实例化预设体Inst ...

  6. Demon_接金币(三个掉落物品预设体,一接物体的工具)

    接物体的工具 using UnityEngine; using System.Collections;public class Tool : MonoBehaviour {float hor;Vect ...

  7. Unity3D开发之----将预设体Prefab压缩成AssetBundle文件

    我在写这边文章之前参照了如下文章: https://www.jianshu.com/p/5d4145cd900c ----------------------------我是分割线---------- ...

  8. Unity Shader 变体处理与预加载流程

    一.什么是Shader变体,它是怎么出现的 当我们写完一个shader以后,unity需要加载和编译,这个过程由着色器的构建管线来完成,它的输入是着色器,而它的输出就是今天的主角---着色器变体:每一 ...

  9. Unity 基础 - 预设

    Unity 中预设是指创建出一个游戏对象,然后把它作为一个游戏模板或原型,之后我们在使用类似的游戏对象的时候就,就可以把他拖拽到游戏场景中,来创建出一个新的游戏对象. 预设 的作用是: 1.使游戏对象 ...

最新文章

  1. android 添加安装权限白名单
  2. D455 如何同时传输视频深度流和惯性单元IMU流?(双管道方法与调用回调方法)
  3. hexo + github 搭建个人博客
  4. switch日版有中文吗_任天堂switch国行和日版的区别
  5. android dumpsys 分析,Android开发调试性能分析工具:dumpsys
  6. 每日程序C语言23-求一个正整数的位数并逆序打印
  7. Delphi 记录类型- 结构指针
  8. linux格式化usb设备,如何在 usb linux下格式化磁盘
  9. Java构造方法与析构方法实例剖析
  10. 在ASP.Net中实现RSA加密
  11. Java常见的垃圾收集器GC算法整理
  12. 扇贝有道180909每日一句
  13. 两个栈实现一个队列,两个队列实现一个栈-JAVA
  14. kindle android 音标 乱码,在乐视2手机上解决kindle阅读器即译时音标显示正常的问题...
  15. skimage.exposure.rescale_intensity
  16. 波士顿大学 计算机专业,波士顿大学本科计算机专业课程设置是怎样的?
  17. Ubuntu上安装BRAT
  18. lottie轻松实现复杂动画(抽奖举例)
  19. 这样的牛皮凉席清水席要慎买!!!
  20. C语言之strrchr函数

热门文章

  1. c语言颜色代码渐变色,Arduino中LED灯实现256中颜色的渐变
  2. 小数位数修约,四舍六入五成双
  3. 使用Python实现Linux命令的批量执行
  4. android计时器和倒计时
  5. 如何把html文件格式转为视频格式,如何将qlv格式转换成mp4-太平洋软件资讯-太平洋电脑网...
  6. Java项目:宠物医院预约管理系统设计和实现(java+springboot+mysql+ssm)
  7. GlobalSign和DigiCert对比
  8. 换硬币 (20 分)Java【循环】
  9. Android 天气APP(九)细节优化、必应每日一图
  10. Tilt Five AR桌游体验:概念很新颖,但缺乏高质量内容?