No passado, eu usei em Content.Load<type>("filename");
todo o lugar. Isso rapidamente se torna um pesadelo para gerenciar e, pior ainda, você começa a ter várias cópias do mesmo ativo carregadas em vários lugares diferentes.
Depois, passei a usar uma classe Resources, que basicamente se parecia com o seguinte:
public class Resources
{
public static Texture2D particle01;
...
public static Texture2D particle93;
public static Effect shader01;
...
public static Effect shader32;
public static Load(ContentManager content, GraphicsDevice device)
{ //load all the resources }
public static Unload()
{ //unload all the resources }
}
Então eu poderia simplesmente usar Resources.particle01
para obter uma referência ao recurso de qualquer lugar dentro do mesmo espaço para nome.
Essa foi uma ótima abordagem, pois eliminou as duplicatas que eu tinha no passado. Além disso, todo o carregamento foi feito em uma única classe, facilitando o controle dos recursos. E, finalmente, eu poderia simplesmente clicar com o botão direito, por exemplo, particle93
e clicar em encontrar todas as referências para encontrar todos os lugares que usavam essa textura.
No entanto, existem problemas com essa abordagem e eu gostaria de saber se existe uma solução melhor por aí.