作为方法加载纹理

我想在我需要的时候加载纹理,所以我需要一个方法来实现。

LoadTexture(string fileName) 

我只使用那个参数,但是我会在方法中放什么? 到目前为止,我只是在启动时加载了类似的内容

  content.Load<Texture2D>("blah"); 

但是我想从启动时加载所有内容,只在需要的时候加载内容。

编辑:为了解释我要去什么,我会给更多的细节。 说我有一大块块50x50x50。 这些大部分都不会被绘制,所以加载没有绘制的立方体的纹理是没有意义的。 这就是为什么我需要一个方法,可以在需要为多维数据集加载纹理时调用。 而不是加载6个纹理125000立方体的6面,我减less了负载量只有可见的立方体。

 public Texture2D LoadTexture(string fileName) { return Content.Load<Texture2D>(fileName); } 

这将是方法,但我不明白为什么你不会只是调用Content.Load()?

XNA通过它的GameComponent类隐式支持你正在做的事情 。 利用这些将会解决你的问题,但是然后你就用自己的devise方法来解决问题。

Game类(主对象循环inheritance的类)具有一个名为Content的方便属性,它是对ContentManager实例的引用。 这一切都是默认为你设置的。 现在最酷的是当你创建一个GameComponent的实例,它要求一个Game对象。

 public class SomeCustomClass : GameComponent { public SomeCustomClass(Game game) : base(game) { } } 

上面的代码显示了GameComponent的最小实现。 但是因为你传递了一个游戏循环的实例,现在可以看到游戏中的每个公共属性,包括通过base.Game

所以从那里开始,你需要实现一个方法来使用base.Game.Content.Load<Texture2D>("someResource");来加载/卸载内容base.Game.Content.Load<Texture2D>("someResource"); 或类似的东西。

另请参阅: http : //msdn.microsoft.com/zh-CN/library/microsoft.xna.framework.game_members.aspx