- Unity3D高級編程:主程手記
- 陸澤西
- 364字
- 2022-01-07 14:46:28
4.4.4 MaterialModifiers、SpecializedCollections和Utility
材質球修改器、特殊收集器、實用工具這三部分的邏輯量相對少卻相當重要,它們是其他模塊所依賴的工具。
MaterialModifiers、SpecializedCollections、Utility的文件夾結構如圖4-6所示。

圖4-6 MaterialModifiers、SpecializedCollections、Utility的文件夾結構圖
IMaterialModifier是一個接口類,是為Mask修改材質球所準備的,所用方法需要各自實現。
IndexedSet是一個容器,在很多核心代碼上都可使用,它加快了移除元素的速度,并且加快了元素是否包含某個元素的判斷操作。
ListPool是List容器對象池,ObjectPool是普通對象池,很多代碼上都用到了它們,它們讓內存的利用率更高。
VertexHelper特別重要,它用來存儲生成網格(Mesh)需要的所有數據。在網格生成的過程中,由于頂點的生成頻率非常高,因此VertexHelper在存儲了網格的所有相關數據的同時,用上面提到的ListPool和ObjectPool作為對象池來生成和回收,使得數據被高效地重復利用,不過它并不負責計算和生成網格,網格的計算和生成由各自的圖形組件來完成,它只提供計算后的數據存儲服務。
推薦閱讀
- UML和模式應用(原書第3版)
- 小程序,巧運營:微信小程序運營招式大全
- Learning Salesforce Einstein
- 程序設計基礎教程:C語言
- 從Java到Web程序設計教程
- Windows內核編程
- App Inventor創意趣味編程進階
- Buildbox 2.x Game Development
- Extending Unity with Editor Scripting
- Scrapy網絡爬蟲實戰
- Visual Basic程序設計實驗指導及考試指南
- 你真的會寫代碼嗎
- Java程序設計實用教程(第2版)
- Microsoft Dynamics GP 2013 Cookbook
- Image Processing with ImageJ(Second Edition)