2010-10-29 20 views
6

Şu anda XNA (Okul projesi) kullanarak bir oyun geliştiriyorum ve kaynak dosyalarımı ### - Name ## olarak adlandırdığım ve bunları dizine eklemek istediğim için çalışma sırasında tüm kaynakları listelemenin bir yolu olup olmadığını merak ediyorum. İlk 3 haneli sayı.XNA: Bir dizi/kaynak listesi aldınız mı?

cevap

12

Böyle bir şey ister miydi?

public static Dictionary<String, T> LoadContent<T>(this ContentManager contentManager, string contentFolder) 
{ 
    //Load directory info, abort if none 
    DirectoryInfo dir = new DirectoryInfo(contentManager.RootDirectory + "\\" + contentFolder); 
    if (!dir.Exists) 
     throw new DirectoryNotFoundException(); 
    //Init the resulting list 
    Dictionary<String, T> result = new Dictionary<String, T>(); 

    //Load all files that matches the file filter 
    FileInfo[] files = dir.GetFiles("*.*"); 
    foreach (FileInfo file in files) 
    { 
     string key = Path.GetFileNameWithoutExtension(file.Name); 

     result[key] = contentManager.Load<T>(contentManager.RootDirectory + "/" + contentFolder + "/" + key); 
    } 
    //Return the result 
    return result; 
} 
+0

Neden sadece içerik klasörünü taramayı düşünmedim:/ –

+0

Harika şeyler! Bunu kullanmak için mücadele eden herkes için, projem için Content.RootDirectory = İçeriği zaten ayarlamış olduğum için yük içeriğinden "contentManager.RootDirectory +" öğesini kaldırmam gerektiğini buldum. Ayrıca bu yöntemin, kullanılacak statik bir sınıfta olması gerekir. – Mafro34

+0

Bu, tüm içeriği (bu nedenle yöntemin adı) yüklemek gibi görünüyor. Sadece öğeleri sıralamak istiyorsanız, ancak * yüklemezseniz, bu biraz ağır olabilir. Ayrıca, içeriği yüklemeden belirli bir tür içeriğinin numaralandırmanın herhangi bir yolu olduğunu sanmıyorum. Meh. Bu senaryoda çevrimdışı bir adımın işe yarayacağını varsayalım. – cod3monk3y

İlgili konular