预制体与类的类比思维:
    预制体相当于一个类,当它应用到场景当中,就是一个实例。 类的继承特性也充分运用到预制体中,即预制体变体。

相似预制体的需求场景:
        例子1:多个游戏的窗口背景排版一样,只是里面的内容有所不同,下面两个弹框的背景图,标题图,内容图和关闭按钮都相同,但是里面的具体功能控件不同。
     
    例子2:您可能希望在游戏中使用几种不同类型的机器人,这些机器人全都基于同一个基本机器人预制件。但是,您可能想要一些机器人携带物品(加子物体),一些机器人以不同的速度移动(调整参数),或者一些机器人发出额外的声音效果(添加组件)。
    这两个例子都是需要两个很多相似之处、但是又不完成相同的预制体,最原始的方法是在做好第一个预制体后,直接复制一个进行修改即可;但这样做有个明显弊端,就是公共的游戏元素需要修改时,我需要点开每个预制体进行相同的修改操作,例如替换背景图,修改关闭按钮的大小与位置,而且逐一修改很难保证步调一致。
    这时候,如果能够将预制体的相同部分抽象出来,在抽象的预制体(原始预制件)的基础上创建多个属性不同的变体,即Unity提供的共功能,预制体变体(Prafab Varient)。

官文名:PrefabVariants.html
预制体变体的创建:
    1.将场景中的预制体实例拖动到Project面板中,会弹出提示创建新预制体还是预制体变体的面板
 Original Prefab即创建一个全新的预制体,Prefab Variant即创建一个预制体变体。
    2.可在 Project 视图中的预制件上右键单击,然后选择 Create > Prefab Variant。

预制体变体的特性(和预制体实例的特性完全相同)
  1. 属性继承:如果子Prefab的某些属性不动, 则父Prefab的属性影响子Prefab的属性,
  2. 属性定制:如果对子Prefab的某些属性进行修改/覆盖, 则父Prefab的属性无法影响,

注意:不合理的抽象不如不抽象,使用预制体变体和使用基类一样,应尽可能将具有相同功能或者布局的预制体的公共部分抽离出来作为本体。而对于本来就关联不大或者有巨大差别的游戏对象,则分为两个不同的预制体也许比在创建预制体变体更合适;
        如果在后续的开发过程中,发现预制体变体和本体相差过大,则可以通过“UnPack Prafab Completely”解除继承。

















Prafab Varient 预制体变体的更多相关文章

  1. .NET C#杂谈(1):变体 - 协变、逆变与不变

    0. 文章目的:   介绍变体的概念,并介绍其对C#的意义 1. 阅读基础   了解C#进阶语言功能的使用(尤其是泛型.委托.接口) 2. 从示例入手,理解变体   变体这一概念用于描述存在继承关系的 ...

  2. 自然语言19.1_Lemmatizing with NLTK(单词变体还原)

    QQ:231469242 欢迎喜欢nltk朋友交流 https://www.pythonprogramming.net/lemmatizing-nltk-tutorial/?completed=/na ...

  3. 【Visual Lisp】变体与安全数组

    (vlax-make-variant) ;;创建一个未初始化的变体 ;;01.整型值变体(setq myvar (vlax-make-variant 10)) ;;创建整型值变体,返回 #<va ...

  4. labview 变体数据类型

    变体数据类型是LabVIEW中多种数据类型的容器.将其它数据转换为变体时,变体将存储数据和数据的原始类型,保证日后可将变体数据反向转换. 例如,如将字符串数据转换为变体,变体将存储字符串的文本,以及说 ...

  5. Bootstrap 标签的变体 实例样式

    Bootstrap 标签样式,代码如下: <!DOCTYPE html> <html> <head> <title>Bootstrap 实例 - 标签的 ...

  6. Odoo / PS Cloud12版本中,产品变体功能如何使用

    场景: 产品:陶瓷马克杯 产品颜色变体:红色.蓝色.白色 产品尺寸变体:10CM.12CM.15CM 每个变体都有不同价格维度 odoo / PS Cloud 专业实施开发 EMAIL:1715860 ...

  7. 二叉查找树及B-树、B+树、B*树变体

    动态查找树主要有二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree), 红黑树 (Red-Black Tree ), 都是典型的 ...

  8. (转) 干货 | 图解LSTM神经网络架构及其11种变体(附论文)

    干货 | 图解LSTM神经网络架构及其11种变体(附论文) 2016-10-02 机器之心 选自FastML 作者:Zygmunt Z. 机器之心编译  参与:老红.李亚洲 就像雨季后非洲大草原许多野 ...

  9. 完全图解RNN、RNN变体、Seq2Seq、Attention机制

    完全图解RNN.RNN变体.Seq2Seq.Attention机制 本文主要是利用图片的形式,详细地介绍了经典的RNN.RNN几个重要变体,以及Seq2Seq模型.Attention机制.希望这篇文章 ...

随机推荐

  1. Linux 网络编程的5种IO模型:阻塞IO与非阻塞IO

    背景 整理之前学习socket编程的时候复习到了多路复用,搜索了有关资料,了解到多路复用也有局限性,本着打破砂锅问到底的精神,最终找到了关于IO模型的知识点. 在<Unix网络编程>一书中 ...

  2. [论文解读] 阿里DIEN整体代码结构

    [论文解读] 阿里DIEN整体代码结构 目录 [论文解读] 阿里DIEN整体代码结构 0x00 摘要 0x01 文件简介 0x02 总体架构 0x03 总体代码 0x04 模型基类 4.1 基本逻辑 ...

  3. 聊一聊C#基本类型

    C#基本类型 闲来无事,重新温习了下C#基本类型.以下讲的基本类型主要是包括基本的值类型类型和string.struct和class不包含其中. C#基本类型------值类型: bool,byte, ...

  4. python详细图像仿射变换讲解

    仿射变换简介 什么是放射变换 图像上的仿射变换, 其实就是图片中的一个像素点,通过某种变换,移动到另外一个地方. 从数学上来讲, 就是一个向量空间进行一次线形变换并加上平移向量, 从而变换到另外一个向 ...

  5. Docker系列02—Docker 网络模式

    一.Docker的四种网络模式 1.Docker 的四种网络模式: Bridge container 桥接式网络模式 Host(open) container 开放式网络模式 Container(jo ...

  6. .NET 5 中的隐藏特性

    前言 双十一当天 .NET 5 正式发布带来了很多的新特性和改进,个人觉得非常香,并且花了 10 分钟时间就把自己的 4 个 .NET Core 3.1 的项目升级到了 .NET 5,堪称无痛. 但是 ...

  7. deepin 20 镜像源

    deepin 20 镜像源 ## Generated by deepin-installerdeb [by-hash=force] https://community-packages.deepin. ...

  8. [tmp]__URL

    常用排序算法稳定性.时间复杂度分析(转,有改动) http://www.cnblogs.com/nannanITeye/archive/2013/04/11/3013737.html http://w ...

  9. 【转】jps 命令使用

    jps(Java Virtual Machine Process Status Tool)是JDK1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简 ...

  10. (1)ElasticSearch搭配Kibana在linux环境的部署

    1.简介 这个章节主要介绍ElasticSearch+Kibana两个组件在linux环境的部署步骤,以及在部署过程中遇到问题解决,暂就不涉及集群部署知识点,后面章节再详细讲解这块.下面让我们来简单了 ...