本章节我们来讲解如何编辑预制体文件。这里介绍三种打开编辑预制件的方式。第一就是通过预制件的实例游戏对象的Inspector检视面板上面的预制件“打开”按钮。

第二就是在Project工程面板中选中预制件文件(Cube.prefab),然后在Inspector检视面板中点击“打开预制件”。

第三就是在Project工程面板中双击预制件文件(Cube.prefab)。

上面的三种方式打开后,都是下面的效果图样子。

Hierarchy层次面板会变成这样。

Scene场景视图会变成这样。

预制体的Inspector检视面板是这样的。

这里就是我们之前第一次创建“Cube”游戏对象的所有属性,包括添加到它身上的“CubePrefabTest”脚本文件等等,如果有需要的话,我们可以在这里编辑这个预制体。请注意的是,修改预制件资源时,更改将反映在其所有游戏对象实例中。这个应该很容易理解,我们将“根”修改了,那么由“根”产生的游戏对象自然也要同步修改。还有另一种修改预制体的方式,就是通过它的实例进行修改,然后同步到预制体上面。操作步骤也非常简单。我们之间将一个游戏对象拖拽到Project视图中就创建了预制体,那么我们拖拽预制体到场景中呢?自然就是实例化一个游戏对象出来啊。

请注意,这种将预制体拖拽到场景中的,与我们之前使用代码生成的,还是有区别的,我们发现在Hierarchy视图中的游戏对象的名称是蓝色的,这跟我们创建预制体的时候相似。我们点击场景中的“Cube”立方体,查看它的Inspector检视视图。与普通游戏对象相比,预制件实例的Inspector 有三个额外的控件:Open、Select 和 Overrides。这就是本章节开始位置打开预制体的方式。

Open 按钮就是打开编辑预制件资源窗口(上面介绍的第一种方式),修改后同步到其所有实例,这个跟我们直接编辑预制体文件是一样的。Select 按钮在 Project 窗口中选择用于生成此实例的预制件资源文件。Overrides 下拉窗口显示预制件实例上的所有覆盖(Overrides)。还允许将实例的覆盖应用于预制件资源,或将实例上的覆盖恢复为预制件资源上的值。首先,我们要理解什么是覆盖?因为我们的所有实例都来源于预制体,因此这些实例的所有属性都是相同的。有时候,我们需要修改个别实例的一些属性,比如修改它的位置,添加新的组件等等,这些就属于覆盖。我们可以对预制件实例进行修改(覆盖),那么我们自然也可以将这个修改(覆盖)应用到预制体资源上面。例如,我们给“Cube”游戏对象添加一个“Rigidbody”组件(点击Add Component按钮后,在搜索框中输入“ri”,然后在下面的下拉框中找到“Rigidbody”组件即可),如下所示

这个组件的作用,我们暂且不讲解。

此时,我们点击上面的“Overrides”,就可以看到会显示“Rigidbody”的差异,

如果我们点击“Rigidbody”的话,就会再次弹出一个窗户,显示该组件的内容,同时上面会有两个按钮,一个是“Revert”(还原),另一个是“Apply”(应用)。

我们点击“Apply”按钮,就会将这个改动应用到我们的预制体上面。如果我们改动比较多,我们可以直接点击“Apply All”按钮来讲所有的修改全部应用到预制体上面。点击应用按钮完毕之后,我们在“Project”视图中单击/双击“Cube.prefab”资源文件,然后查看它的Inspector检视面板,就能看到我们刚刚添加的“Rigidbody”组件。

这说明,我们预制体资源文件同步修改成功了。这里我们总结一下,预制体有两种编辑方式,第一种就是直接编辑预制体文件本身,第二种就是通过它的实例(游戏对象)编辑并同步到预制体。

最后再介绍一下预制件变体。在Project工程面板中,选中预制件资源文件,然后右键,选择“Create”->“Prefab Variant”。就可以创建一个预制件变体。预制件变体是基于预制件生成的,它的特点是修改预制件变体的内容不会影响预制体。当然,也可以手动将修改应用到预制件上。它的作用主要用来做预制体的差异化处理,这样可以适用更多的复杂情况。

第十七章 Unity 预制件prefab(下)相关推荐

  1. 第十六章 Unity 预制件prefab(上)

    本章节我们介绍一下"预制件",也有人叫"预制体",也就是Prefab.在游戏世界中,那些自然环境的游戏对象,我们可以提前创建在场景中,这个大家能够理解.但是,有 ...

  2. Unity预制件Prefab的概念,创建与加载(包括动态加载)

    1 预制件定义 英文单词Prefab,含义就是预制件,比如板房就是用预制的铁板组合成的. 回到游戏中,也是类似的概念.一个3D场景中,如果有很多重复的东西,比如树木,草,箱子啥的,那就可以预制一个东西 ...

  3. Unity预制件Prefab Day04

    预制体简介:Prefab,预先准备好的物体,可以重复使用和利用.(一种资源类型,可以多次在场景进行实例) 管理预制体:在Assets中建立"Prefabs"文件夹,用于管理预制体. ...

  4. 第五十七章 Unity 混音器

    本章节我们介绍Unity 混音器 (Audio Mixer),它允许我们混合各种音频源,并对音频源进行统一控制或应用各种效果.在Unity中混音器是一种资源文件,可以右键Create创建AudioMi ...

  5. [Unity3D] 2D像素游戏(二) 准备图像素材并认识预制件Prefab

    回顾 构思 素材准备 寻找地板和障碍素材 统一图片素材尺寸 合适搭配素材 导入Unity预览效果 制作预制件(Prefab) 拓展阅读 回顾 上一篇:(一) Hello Unity! 在初步认识了Un ...

  6. 认识Unity中Prefab

    认识Unity中Prefab 目录 认识Unity中Prefab 一.Prefab是什么? 二.prefab创建 三.关于预制类型问题 Unity官网介绍Prefab Type:https://doc ...

  7. Unity网络多玩家游戏开发教程第1章Unity自带网络功能

    Unity网络多玩家游戏开发教程第1章Unity自带网络功能 Unity拥有大量的第三方插件,专门提供了对网络功能的支持.但是,大部分开发者第一次接触到的还是Unity自带的网络功能,也就是大家经常说 ...

  8. Unity4.x 2D游戏开发基础教程第1章Unity及其组成的介绍

    Unity4.x 2D游戏开发基础教程第1章Unity及其组成的介绍 本书主要讲解的是,如何使用Unity开发2D游戏.但在开始讲解之前,最好先熟悉一下Unity这个工具.本章会首先介绍Unity的下 ...

  9. 数字图像处理:第十七章 纹理分析

    第十七章 纹理分析 目录 1.    引言 2.    纹理的统计特征 3.    基于纹理的分割 作业 1. 引言 纹理是对图象的象素灰度级在空间上的分布模式的描述,反映物品的质地,如粗糙度.光滑性 ...

最新文章

  1. redis php数据插入失败,redis插入数据,恢复数据测试(禁止淘汰策略下恢复大于redis内存限制数据情况)...
  2. cocos2dx - Lua 语言
  3. RocketMQ 消息丢失场景及解决办法
  4. ehcache_缓存基础
  5. 剑指Offer #10 矩形覆盖(问题分析)
  6. instance在ceph对应pool的位置查询
  7. BeanUtils.copyProperties(对象A,对象B)
  8. 祝福神器!微信推出“表情搜索”功能,支持合成个性化祝福表情
  9. 解决eclipse环境下maven项目tomcat启动,未加载到项目的问题
  10. linux下cmake使用教程,超详细的cmake教程
  11. 【渝粤题库】广东开放大学 组织行为学 形成性考核
  12. 百度地图离线API及地图数据下载工具-尝鲜篇
  13. Linux下音乐播放器的实现
  14. 芝诺数解|「七」月是故乡明,月饼表浓情
  15. 智慧医疗管理系统解决方案:医药电商系统实现智能化改造
  16. 综述:视频和图像去雾算法以及相关的图像恢复和增强研究
  17. Oracle 11g R2+RAC+ASM+redhat安装详解1
  18. 【Linux4.1.12源码分析】协议栈gro收包之TCP处理
  19. php字符串截取substr,php字符串处理函数:substr、mb_substr
  20. python画图设置字体_【转】matplotlib画图时的中文设置

热门文章

  1. Bitwarden报错:Cannot read properties of nul(reading ‘iterations‘)
  2. 【Kaggle】如何举办你的比赛?
  3. 模糊控制初学入门之概念认知
  4. 模拟退火算法SA求解连续函数极值
  5. 自行车安全交叉路口设计
  6. puzzle(0914)方块识途、拾穗方块
  7. Ubuntu登陆不进去的一个原因
  8. 黑马程序员Java培训、Android培训_银行业务调度系统笔记
  9. 从普通程序员到身价过百亿:追求长期价值的耐心,决定了你能走多远 原
  10. 2022年4月10日百度机器学习方向暑期实习面试题分享