U3D prefab
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重復引用的問題,以減少打包的尺寸。
?
?
?
?
?
?
?
?
?
posted on 2016-10-25 11:52 時空觀察者9號 閱讀(...) 評論(...) 編輯 收藏
總結
以上是生活随笔為你收集整理的U3D prefab的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#中lock死锁实例教程
- 下一篇: 托管执行过程