我會先說我不知道這是否是加載資源的最佳方法,但現在我的資源管理器已將內容提交到LoadContent,然後刷新其資源並將其存儲在列表中。然後,在遊戲代碼中的任何一點,我都可以調用查詢資源,並返回一個我設計爲ResourceBufferElement的類型,該類型在任何給定時間都包含xna的所有可能類型的內容,但其中只有一個不爲null。基於非編譯時間變量的返回類型
所以
//All of this is valid but only .Texture returns a non-null value
QueryResource("texture").Texture
QueryResource("texture").Model
QueryResource("texture").SpriteFont
那麼是什麼我不知道是如果有對我來說,只是叫QueryResource(「」),並含蓄地返回它所代表的價值的一種方式。
所以我想說
//At LoadContent
SubmitResource("texture", typeof(Texture2D))
SubmitResource("model", typeof(Model))
//Then at calling I want to say
Texture2D tex = QueryResource("texture")
or
Model mod = QueryResource("model")
//Instead of saying this
Texture2D tex = QueryResource("texture").Texture
or
Model mod = QueryResource("model").Model
注:我已經存儲的類型,以便在提交我說
SubmitResource("", typeof(Texture2D))
and ResourceBufferElement keeps the Type for later use
您可以返回一個* dynamic * – xanatos
爲什麼不只有三種方法,QueryTexture,QueryModel和QuerySpriteFont? –