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

相似预制体的需求场景:
        例子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. Java集合(类)框架(三)

    1. Map集合 相较于List和Set集合而言,Map集合所储存的数据为双列行,数据是以key和value为一个单位进行存储的,如在建立一个学生Map的时候,其中的数据应为 学号-姓名(key-va ...

  2. http post 四种方式

    HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文 ...

  3. 关于appium

    一.特点 1.appium是开源的移动端自动化测试框架: 2.appium可以测试原生的.混合的.以及移动端的web项目: "移动原生应用"是指那些用iOS或者 Android S ...

  4. ssh 和scp 非22端口

    ssh :(命令中的 p 小写) ssh -p 端口号 root@服务器ip scp: (命令中的 P 大写)(-r表示将目录下的目录递归拷贝.".*"是将所有文件包括隐藏文件.) ...

  5. CF715E—— Complete the Permutations

    传送门:QAQQAQ 题意:给你两个$1$~$n$的排列,0表示该位置数字不确定,两两交换第一个排列中的元素使之变成第二个排列,令$s[x]$表示对于所有不同的两个排列,最少交换次数为$x$的序列有$ ...

  6. php 使用 phpword 操作 word 读取 word

    思路 1. 加载word文件.2. 循环判断加载出来的数据.( 数据下面有很多个节点 )( 节点是按照数据的类型分类的 例如 无样式的文本是RunText,换行是TextBreak,表格是table. ...

  7. leetcode104:permutations

    题目描述 给出一组数字,返回该组数字的所有排列 例如: [1,2,3]的所有排列如下 [1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2], [3,2,1].  (以数字在数 ...

  8. leetcode99:n-queens

    题目描述 N皇后问题是把N个皇后放在一个N×N棋盘上,使皇后之间不会互相攻击. 给出一个整数n,返回n皇后问题的所有摆放方案 例如: 4皇后问题有两种摆放方案 [".Q..",  ...

  9. C语言中利用clock设计一个简单的定时器

    time.h是C/C++中的日期和时间头文件,用于需要时间方面的函数,定义了四个变量类型.两个宏和各种操作日期和时间的函数. 其中计时函数是clock(),而与其相关的数据类型是clock_t.clo ...

  10. spring中的数据库操作类

    例子一: package cn.itcast.service.impl; import java.util.List; import javax.sql.DataSource; import org. ...