zoukankan      html  css  js  c++  java
  • 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重复引用的问题,以减少打包的尺寸。

     

     

     

     

     

     

     

  • 相关阅读:
    centos 6,7 上cgroup资源限制使用举例
    redis sentinel哨兵的使用
    redis发布-订阅
    Golang cpu的使用设置--GOMAXPROCS
    Golang 端口复用测试
    Golang client绑定本地IP和端口
    Go并发控制--context的使用
    Go 并发控制--WaitGroup的使用
    go thrift报错问题--WriteStructEnd
    secureCRT上传本地文件到虚拟机
  • 原文地址:https://www.cnblogs.com/timeObjserver/p/5996174.html
Copyright © 2011-2022 走看看