2011-05-22 85 views
0

假設您製作遊戲引擎,並且您有幾個GameObjects,並且每個GameObject都有一個您可以添加或刪除的組件列表。基於組件的設計

假設有一個MeshComponent誰擁有頂點,法線等。如果多個GameObjects具有相同的MeshComponent,將會有很多內存浪費。當然有很多方法可以實現這一點,但我想要一些很好的建議如何解決這個問題?組件如何共享不會被修改的數據?

+0

靜態類?你的語言是否支持這些? – 2011-05-22 08:38:13

+0

語言是C++所以它支持,但它是實現的最佳方式?那麼你必須爲每個不同的網格做一個網格組件? – Merni 2011-05-22 08:41:15

回答

0

C++沒有靜態類。

如果多個GameObjects具有相同的MeshComponent,將會有內存浪費。 因爲,當然,它是相同的MeshComponent ...

如果您有許多MeshComponent副本應該是相同的,您將浪費內存。

如果許多GameObjects需要指向相同的MeshComponent那麼它們應該每個都保持一個(智能)指針指向相同的MeshComponent