Tout d'abord, vous devrez décider si vous souhaitez adopter un modèle poussé ou tiré. Dans un modèle push, l'application/l'environnement qui a changé l'actif devra en quelque sorte informer le jeu en cours que l'actif a changé et doit être rechargé. Cela pourrait être fait avec une file d'attente de messages très simple. Dans un modèle tiré, le jeu vérifie périodiquement tous les éléments du jeu pour voir s'ils ont été modifiés et, le cas échéant, les recharge. Ce serait une solution plus simple, mais moins performante.
Une plus grande préoccupation est de savoir si votre jeu peut gérer de manière gracieuse le rechargement des ressources pendant que l'application est en cours d'exécution. Vous devrez probablement implémenter une sorte de thread d'arrière-plan qui chargera les assets et les "swaps" avec des assets "live" dans le jeu. Votre jeu peut également marquer une pause chaque fois qu'un élément est rechargé. Dans les deux cas, cela pourrait facilement devenir la partie la plus compliquée du processus, selon le fonctionnement actuel de votre pipeline de contenu (vous pouvez déjà avoir un thread de chargement de fond, etc.). :
vous pouvez obtenir le chemin complet vers le dossier de contenu en utilisant cette méthode :)
static public String FullContentDirectory(this ContentManager content)
{
var appPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
return System.IO.Path.Combine(appPath, content.RootDirectory);
}
maintenant, je pense que votre problème suivant peut-être, comment savez-vous l'extension de fichier du nom de l'actif? Ou, et si le nom de l'actif est différent du nom de fichier?
pas sûr si vous êtes toujours à la recherche de cela, mais si vous êtes, nous avons une solution construite sur mesure qui fonctionne dans la plupart des cas. – roundcrisis