博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
U3D prefab
阅读量:5916 次
发布时间:2019-06-19

本文共 686 字,大约阅读时间需要 2 分钟。

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

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/timeObjserver/p/5996174.html

你可能感兴趣的文章
不定宽高垂直居中分析
查看>>
项目管理学习笔记之二.工作分解
查看>>
C# PPT 为形状设置三维效果
查看>>
js数组实现不重复插入数据
查看>>
aidl跨进程通讯
查看>>
如何确定所运行的 SQL Server 2005 的版本?
查看>>
我的友情链接
查看>>
mysqld error(一)
查看>>
CentOS 7 网络配置
查看>>
matplotlib 交互式导航
查看>>
eclipse的插件未安装成功
查看>>
UnicodeEncodeError: 'ascii' codec can't encode
查看>>
jvm在什么时候进行进行垃圾回收,在什么时候进行扩大内存
查看>>
【转载】强大的命令行工具wmic
查看>>
如何用30分钟快速优化家中Wi-Fi?阿里工程师有绝招
查看>>
云越发展,锁定问题就会越严重?
查看>>
用户访问网页的流程原理
查看>>
各种链接
查看>>
我的友情链接
查看>>
《Spring实战》第四版读书笔记 第一章 Spring之旅
查看>>