0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

prefab是什么_如何创建填充Prefab_Prefab的继承及导入

电子工程师 作者:工程师a 2018-05-12 04:29 次阅读

Prefab概念:

Prefab是一种资源类型——存储在项目视图中的一种可反复使用的游戏对象。因而当游戏中须要非常多反复使用的对象、资源等时,Prefab就有了用武之地。它拥有下面特点:

• 能够放到多个场景中。也能够在同一个场景中放置多次

• 当加入一个Prefab到场景中,就创建了它的一个实例

• 全部的Prefab实例链接到原始Prefab,本质上是原始Prefab的克隆。

• 不论项目中存在多少实例。仅仅要对Prefab进行了改动。全部Prefab实例都将随之发生变化。

创建填充Prefab

为了创建一个Prefab。必须使用菜单构造一个新的空白Prefab。不包括游戏对象,因而不能创建它的一个实例。

此时这个新的Prefab像一个空的container,想要使用它。必须用游戏对象的数据来填充它,让它不空。创建方法为Project视图中Create-》Prefab(或导航菜单条Assets-》Create-》Prefab),此时能够看到Project视图多了个灰色的小立方体,它就是创建的Prefab。

填充Prefab非常easy。仅仅须要在Hierarchy视图中选择要成为Prefab的游戏对象,然后拖动该对象到刚才创建的Prefab上就可以。此时能够看见灰色的小立方体变成蓝色了。此时。游戏对象和其全部子对象就已经拷贝到了Prefab的数据中,该Prefab能够在多个实例中反复使用。而Hierarchy视图中的原始游戏对象已经成为了该Prefab的一个实例。

假设选择了一个Prefab实例,并希望做能够影响全部实例的变化,点击Inspector中的Selectbutton选择源Prefab。

脚本实例化Prefab(执行时实例化Prefab)

在执行时,通过Prefab实例化复杂的游戏物体是非常方便的。实例化Prefab的替代方法就是从一开始就使用代码来创建游戏物体。而实例化Prefab比替代方法有非常多优势:

○ 能够用一行代码来实例化一个具有所有同样功能的Prefab。而用代码创建等效的游戏对象却要花费平均5行代码但可能很多其它。

○ 能够非常easy地在Scene和Inspector视图中高速建立、测试和改动Prefab。

○ 能够改动实例化的Prefab却不须要改变实例化它的代码。

比如,一个简单的火箭可被改动为超级火箭,却不须要改动不论什么代码。

Unity中Object类含有两个实例化函数:

c#]static Object Instantiate(Object original, Vector3 position, Quaternion rotation);

static Object Instantiate(Object original);

javascript]static function Instantiate(original: Object, position: Vector3, rotation: Quaternion): Object;

static function Instantiate(original: Object): Object;

实例化函数跟编辑器中的Duplicate命令相似。

克隆游戏对象能够有选择性地指定位置和旋转,默觉得Vector3.zero和Quaternion.identity。假如克隆了一个组件那么附加的游戏对象也会被克隆;当克隆游戏对象或组件,全部的孩子对象和组件都会被克隆,它们的属性集跟源对象一样;可是克隆的新对象的父母却是null。当然想设置的话能够显示指定;克隆时游戏对象的状态也会被克隆,因而假设源对象是inactive的话克隆出来的对象状态也是inactive的。

能够看看利用instantiate实例化Prefab的样例:Instantiate应用的4个典型小样例。

Prefab的继承

继承是指任何时候当源Prefab发生变化时,这些变化将应用于全部已链接到该Prefab的游戏对象。比如,假设加入一个新的脚本到该Prefab。全部已链接到该Prefab的游戏对象都将立马包括该脚本。

可是,改变一个单独实例的属性并同一时候保持链接完整是可能。

改变一个Prefab实例的任何属性,能够观察到属性变量名字变为粗体,如今该变量能够被重写,全部的重写属性不会受源Prefab变化的影响,这样就能够在保持Prefab链接不变的前提下,改动Prefab实例使它们变得独一无二。

假设想用新的重写属性值覆盖源Prefab和全部实例,能够在Inspector中点击Applybutton。

注意,源的位置和旋转将不被应用。由于那样会影响到实例的绝对位置并把全部实例放在同一位置。可是从不论什么子或根的祖先的位置和旋转将被应用。由于他们是相对于根的Transform来计算的;假设想放弃对特定实例的全部覆盖更新。能够点击Revertbutton。

破坏与恢复Prefab链接

某些行为能够打破源Prefab和单个Prefab实例之间的链接,可是链接总是会被修复的。能够打破链接的行为有:

○ 加入或删除一个组件

○ 加入或删除一个子对象

这些行为将给出链接打破的警告/确认消息。假设确认这种行为将会破坏链接 。

若要修复该链接,能够在Prefab实例的Inspector视图中点击Reconnect或Applybutton。Reconnect将会丢弃与源Prefab的全部区别,而Apply将会将全部的区别拷贝到源Prefab中,因此全部其它的Prefab实例都会受到影响。

导入的Prefab

当放置一个网格资源到资源目录时,Unity会自己主动导入文件并生成一些类似于Prefab的网格。而实际上并非网格。仅仅是资源文件本身。

在进行正常预置工作时,资源的实例化名没有某些限制。

资源是作为一个游戏对象在场景中被实例化的,被链接到源资源却不是一个Prefab。资源作为正常的游戏对象,能够加入和删除组件。然而,不能对这个资源本身做不论什么变动,由于这将给资源文件本身加入数据。假设要创建一些须要反复使用的东西。应该将资源实例制成一个Prefab,步骤同创建Prefab,仅仅只是是拖拽资源文件到新建的Prefab就可以。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 资源
    +关注

    关注

    0

    文章

    59

    浏览量

    17800
收藏 人收藏

    评论

    相关推荐

    沟槽结构碳化硅的外延填充方法

    一、引言 沟槽结构碳化硅的外延填充方法是指通过在碳化硅衬底上形成的沟槽内填充高质量的外延层,以实现器件的电学和热学性能要求。这一过程中,不仅要保证外延层的填充率,还要避免空洞和缺陷的产生,从而确保
    的头像 发表于 12-30 15:11 187次阅读
    沟槽结构碳化硅的外延<b class='flag-5'>填充</b>方法

    芯片底部填充胶种类有哪些?

    芯片底部填充胶种类有哪些?底部填充胶(Underfill)又称底部填充剂,指以高分子材料为原材料制成的电子封装胶,主要用于在芯片和基板之间的空隙中填充,以增强机械强度、热稳定性和可靠性
    的头像 发表于 12-27 09:16 253次阅读
    芯片底部<b class='flag-5'>填充</b>胶种类有哪些?

    填充片的定义及作用

    本文介绍填充片的定义及作用 一、Dummy Wafer 的定义与作用 Dummy Wafer,中文称为填充片,是在晶圆制造过程中专门用于填充机台设备的晶圆,通常不会用于实际生产,也不会直接作为成品
    的头像 发表于 12-04 13:56 245次阅读

    如何导入Altium Designer的原理图和PCB?

    其它导入器那样,必须要求先把AD文件另存为ASCII的格式。 ” 导入原理图 1. 首选打开KiCad, 创建一个新的工程,并打开原理图。 2.点击“文件->导入->非KiCad原理图
    的头像 发表于 11-12 12:21 1203次阅读
    如何<b class='flag-5'>导入</b>Altium Designer的原理图和PCB?

    AD画完原理图后如何导入PCB

    完整无误 : 在进行导入之前,请确保原理图已经绘制完成,并且所有元件都已正确放置和连接。 检查元件的封装是否已分配,因为封装是元件在PCB上的物理表示。 创建或打开PCB文件 : 如果尚未创建PCB文件,请在项目中新建一个PCB
    的头像 发表于 09-02 16:32 7900次阅读

    altium怎么把原理图导入pcb

    在Altium Designer中,将原理图导入到PCB设计是一个关键的步骤,它确保了电路设计的准确性和可制造性。这个过程涉及到多个阶段,包括原理图的创建、编译、检查以及最终的导入到PCB。 1.
    的头像 发表于 09-02 16:27 2120次阅读

    芯片封装底部填充材料如何选择?

    芯片封装底部填充材料如何选择?芯片封装底部填充材料的选择是一个复杂而关键的过程,它直接影响到芯片封装的可靠性和性能。底部填充材料(Underfill)的主要功能是在芯片与基板之间提供额外的机械支撑
    的头像 发表于 08-29 14:58 488次阅读
    芯片封装底部<b class='flag-5'>填充</b>材料如何选择?

    java子类可以继承父类的什么

    Java是一种面向对象的编程语言,它支持继承的概念。继承是面向对象编程的三大特性之一,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。在Java中,子类可以继承
    的头像 发表于 08-20 11:02 1262次阅读

    芯片底部填充工艺流程有哪些?

    芯片底部填充工艺流程有哪些?底部填充工艺(Underfill)是一种在电子封装过程中广泛使用的技术,主要用于增强倒装芯片(FlipChip)、球栅阵列(BGA)、芯片级封装(CSP)等高级封装技术中
    的头像 发表于 08-09 08:36 1747次阅读
    芯片底部<b class='flag-5'>填充</b>工艺流程有哪些?

    底部填充工艺在倒装芯片上的应用

    底部填充工艺在倒装芯片(FlipChip)上的应用是一种重要的封装技术,旨在提高封装的可靠性和延长电子产品的使用寿命。以下是该工艺的主要应用和优势:增强可靠性:倒装芯片封装中的焊点(常为金锡合金或铅
    的头像 发表于 07-19 11:16 736次阅读
    底部<b class='flag-5'>填充</b>工艺在倒装芯片上的应用

    什么是光伏填充系数?

    填充系数(FF)是下图中以深蓝色区域所表征的实际最大功率与短路电流Is/c和开路电压Vo/c的乘积(浅蓝色方块区域)之比。
    的头像 发表于 05-28 16:37 485次阅读
    什么是光伏<b class='flag-5'>填充</b>系数?

    底部填充胶在汽车电子领域的应用有哪些?

    底部填充胶在汽车电子领域的应用有哪些?在汽车电子领域,底部填充胶被广泛应用于IC封装等,以实现小型化、高聚集化方向发展。底部填充胶在汽车电子领域有多种应用,包括以下方面:传感器和执行器的封装:汽车中
    的头像 发表于 03-26 15:30 1089次阅读
    底部<b class='flag-5'>填充</b>胶在汽车电子领域的应用有哪些?

    使用电脑上tensorflow创建的模型,转换为tflite格式了,导入后进度条反复出现0-100%变化,为什么?

    使用电脑上tensorflow创建的模型,转换为tflite格式了,导入后,进度条反复出现0-100%变化,卡了一个晚上了还没分析好?
    发表于 03-19 06:20

    什么是芯片底部填充胶,它有什么特点?

    什么是芯片底部填充胶,它有什么特点?芯片底部填充胶是一种用于电子封装的胶水,主要用于底部填充bga芯片电子组件,以增强组件的可靠性和稳定性。它通常是一种环氧树脂,具有良好的粘接性和耐热性。底部
    的头像 发表于 03-14 14:10 1076次阅读
    什么是芯片底部<b class='flag-5'>填充</b>胶,它有什么特点?

    填充胶是做什么用的?

    填充胶是做什么用的?填充胶是一种广泛应用于电子制造和其他工业领域的材料,它在提高产品性能、增强结构稳定性以及保护核心组件方面发挥着至关重要的作用。以下是关于填充胶的主要用途和它在不同应用中
    的头像 发表于 01-17 14:52 1043次阅读
    <b class='flag-5'>填充</b>胶是做什么用的?