1,prefab相当于一个类,字面意思就是预设,预先设计好的类。把一个prefab拖放到场景中就生成了一个实例,把二个prefab放到场景中就生成了两个实例。

不同的实例独立动作,拥有自己独立的状态与数据,不受其它实例的影响。

2,磁盘上有多个物体d1.fbx, d2.fbx, dn.fbx,将它们拖放到场景中做成一个prefab X,X中保存的是对这些资源的引用,而不是实际资源。当有X的多个实例 x1, x2, xn时,修改任何一个实例中物体d的材质,其它实例也会看到修改的效果;

或者直接在dn.fbx的inspector面板修改材质,也会同时影响所有引用了dn的预设实例。

实例的属性哪些是独有的,不受其它实例影响的,哪些是指向引用的,会与其它实例相互影响的?

生成属性是独有的:由U3D生成的运行时组件,如transform, meshfiler, meshrender等。

如:更改一个实例的坐标不会影响其它实例,一个实例不开启meshrender也不影响其它实例。

原始数据文件的属性是共有的:材质,动画,顶点,法线等。

如:更改一个实例的材质,其实是在更改磁盘上的数据文件,会导致所有引用都跟着更改。

3,由于prefab中保存的只是对实际资源的引用,因此它很小,往往是几kb,随着引用的增多缓慢的增加。

增加的只是对引用物体的引用字符串而已。

尽管引用占用的空间比较小,在游戏开发还是应该防止prafab重复引用的问题,以减少打包的尺寸。

 

 

 

 

 

 

 

U3D prefab的更多相关文章

  1. U3D使anim,unity,prefab文件不显示乱码

    Edit-Project Setting-Editor-Asset Serialization-mode Force Text

  2. U3D 动态创建Prefab的多个实例

    情景:我们有一个mytest脚本,一个my_prefab预置体 想在在这个脚本的start()方法中复制多个my_prefab的实例.有3种方法: 1,将预置体my_prefab放于Resouce文件 ...

  3. U3D笔记11:47 2016/11/30-15:15 2016/12/19

    11:47 2016/11/30Before you can load a level you have to add it to the list of levels used in the gam ...

  4. u3d avatar部件的理解

    u3d中带动画的fbx文件导入的时候,就会显示一个avatar组件,这个到底干嘛的一直没能很好的理解,翻看网上的介绍,基本都是告诉你,设置humanoid类型动画时,拖拉过去之类,但是这玩意到底存储了 ...

  5. Unity3D中的预制件(Prefab)的创建和使用说明!!!

    首先我说明一下什么预制件? 在U3D里面我们叫它Prefab:我们可以这样理解:当制作好了游戏组件(场景中的任意一个gameobject),我们希望将它制作成一个组件模版,用于批量的套用工作,例如说场 ...

  6. u3d动态加入模型

    楼层一层一层的加,把模型分开,弄成prefab放到Resourse文件夹里,在代码里用Instantiate(Resources.Load("模型名字") as GameObjec ...

  7. Unity3D研究之Prefab里面的Prefab关联问题

    Unity研究院之Prefab和GameObject的正向和逆向查找引用 我发现很多美工兄弟都爱问程序Unity3d为什么总丢材质? 我不排除U3d有BUG的情况下会丢材质?但是其实很多时候是人为操作 ...

  8. U3D——Unity3D的脚本-script入门

     Unity3D的基本操作非常easy就能掌握了,接下来就是游戏系统的核心部分:脚本. 什么是Script(脚本)?简而言之,就是使用代码来运行一系列动作命令的特殊文本,它须要编译器来从新解读.U ...

  9. 于Unity3D动态创建对象和创建Prefab三种方式的原型对象

    于Unity3D动态创建对象和创建Prefab三种方式的原型对象 u3d在动态创建的对象,需要使用prefab 和创建时 MonoBehaviour.Instantiate( GameObject o ...

随机推荐

  1. 【读书笔记】iOS-查看一个软件ipa包的内容

    一,打开itunes----->我的iPhone应用程序. 二,右键点击app---->在Finder中显示---->出现下图所示界面. 三,将上图中的ipa包拷贝到桌面,如下图所示 ...

  2. 快速排序(java版)

    public class QuickSortTest{ //比较与交换 private static int partition(int[] source, int low, int hight) { ...

  3. IOS之Foundation之探究学习Swift实用基础整理<一>

    import Foundation //加载网络数据,查找数据的字符串 let dataurl = "http://api.k780.com:88/?app=weather.city& ...

  4. java网络---基本web概念

    首先需要搞清楚web中的3个关键概念. 一.HTTP,HTML,URL. HTML 全称是Hypertext Markup Language,是用来描述一个网页的语言.或者说,该语言是用来描述网页的“ ...

  5. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has p

    2014-09-16 15:47:51.590:WARN:oejs.ErrorPageErrorHandler:EXCEPTION org.apache.jasper.JasperException: ...

  6. 通过正则获取URL中的参数

    闲着无聊用正则做了一个获取URL参数的小算法^_^ function getParam(name) { var objs = window.location.search.match("(\ ...

  7. DataTable转List<Model>通用类

    /// <summary> /// DataTable转List<Model>通用类[实体转换辅助类] /// </summary> public class Mo ...

  8. hbase shell 常用命令

    进入hbase shell console$HBASE_HOME/bin/hbase shell如果有kerberos认证,需要事先使用相应的keytab进行一下认证(使用kinit命令),认证成功之 ...

  9. BaseDao

    public class BaseDao { private static Log logger = LogFactory.getLog(BaseDao.class); // 查询数据 public ...

  10. 深度学习笔记------linux下配置安装caffe-cpu only模式

    本文适合初学者学习配置caffe的最简单方法.这是我在看了网上各种大神的方法后总结的最傻瓜式的配置方法了. 本人也是在不断地配置caffe过程中受打击与成长@.@ 第一步.配置caffe所需的依赖环境 ...