U3D prefab

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重复引用的问题,以减少打包的尺寸。

 

 

 

 

 

 

 

时间: 2024-11-10 07:25:03

U3D prefab的相关文章

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

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

Prefab和GameObject的正向和逆向查找

我发现很多美工兄弟都爱问程序unity3d为什么总丢材质? 我不排除U3d有BUG的情况下会丢材质?但是其实很多时候是人为操作而引起的. 1.不保存就在上传这个操作太恐怖了,切记!!在 U3D里面你无论操作了什么,当你要上传svn的时候一定要先保存场景,Ctrl+S 切记切记!!如果不保存就上传很有可能就会丢材质. 2.我的电脑明明没事,怎么你哪里就丢材质?我发现一个很有意思的现象,每次走到美术电脑前看它的svn工程时,我都会发现各种的“黄叹号”整个工程严重的冲突.然后程序和美术的对话就是:“这

U3D内存优化

原创文章如需转载请注明:转载自风宇冲Unity3D教程学院  U3D内存优化 读了Hog关于内存管理文章, 自己测试了下. 有以下收获: (1)Unity的Profiler性能监测是非常准确. (2)测试复盘的 结果也完全与Hog的一致 (3)但是场景里已经放的物体,删除后,GameObject,Transform等复制出来的是被删掉了.但是引用的贴图却没有被删除.使用Resources.UnloadUnusedAssets并没有效果. 或者实时创建的,依然没有被释放. 最后用了Resource

U3D 场景切换时 脚本对象,GO对象,资源对象的问题

脚本对象:在LUA中写了一个actor类,它封装了角色逻辑,引用了一个GO. GO对象:通过 GameObject.Instantiate(资源对象)生成的. 资源对象:制作好的模型prefab. 在场景切换时: actor是逻辑控制的,可以销毁也可以不销毁.销毁时可以手动销毁它使用的GO,也可以不手动销毁而坐等U3D在场景切换时销毁. GO对象是挂在场景上的(也即hierachy层级),如果不设置为 dontdestroyonload,则GO会在场景切换时被U3D销毁.这时我们的actor只剩

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

u3d在动态创建的对象,需要使用prefab 和创建时 MonoBehaviour.Instantiate( GameObject orignal) 需要的对象为原型. 文提供三种方式获得prefab对象. 方式一:使用脚本的public字段 直接在Project视图里找到做好的prefab,将其拖拽到指定脚本的指定public GameObject 字段. 方式二:Resource类 1.在Assets目录下的任何位置创建一个名为resources的目录.将做好的prefab放到这个目录下,p

U3d学习-使用Unity3D开发2D游戏(上)

欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多U3D资源.U3D培训视频.U3D教程.U3D常见问题.U3D项目源码,[狗刨学习网]unity极致学院,致力于打造业内unity3d培训.学习第一品牌. 1.创建一个Unity3D项目 2.将Camera设置为正交投影 游戏的输出画面是通过摄像机所观察的场景来实现的,将场景呈现到2D的计算机屏幕上具有两种不同的投影方式:透视投影和正交投影,默认状态下是透视投影. 透视投影 正交投影 3.添加相关对象模型 移动摄像机物

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

Unity研究院之Prefab和GameObject的正向和逆向查找引用 我发现很多美工兄弟都爱问程序Unity3d为什么总丢材质? 我不排除U3d有BUG的情况下会丢材质?但是其实很多时候是人为操作而引起的. 1.不保存就在上传 这个操作太恐怖了,切记!!在 U3D里面你无论操作了什么,当你要上传svn的时候一定要先保存场景,Ctrl+S 切记切记!!如果不保存就上传很有可能就会丢材质. 2.我的电脑明明没事,怎么你哪里就丢材质? 我发现一个很有意思的现象,每次走到美术电脑前看它的svn工程时

U3D——Unity3D的脚本-script入门

 Unity3D的基本操作很容易就能掌握了,接下来就是游戏系统的核心部分:脚本. 什么是Script(脚本)?简而言之,就是使用代码来执行一系列动作命令的特殊文本,它需要编译器来从新解读.U3D内部如何解读脚本,这不是我们所要关心的-这是引擎开发人员的活,我们所要知道的就是脚本的使用规则. [三种语言的特点] U3D支持C#,JavaScript,BOO三种语言格式的代码编写.首先来简单介绍下这三种语言的特点: 对U3D来说,这是入门级的脚本语言,U3D内置的函数都能通过JS方便的调用.语法

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

首先我说明一下什么预制件? 在U3D里面我们叫它Prefab:我们可以这样理解:当制作好了游戏组件(场景中的任意一个gameobject),我们希望将它制作成一个组件模版,用于批量的套用工作,例如说场景中本质上“重复”的东西,“敌人”,“士兵”,“子弹”......这里说本质是因为默认生成的prefab其实和模版是一模一样的,就像是克隆体,但生成的位置和角度以及生成后的一些属性是允许发生变化的. * 博主注:这个其实和Flash里的 编译组件 (Component) 有点像 如何制作Prefab