2011-12-15 7 views
2

Мне нужно загрузить некоторые .Xnb-файлы из DLL в Xna Game. Для этого существует «ResourceContentManager», который принимает «ResourceManager» в конструкторе. Итак, как добавить файлы в Embedded Resources в DLL и инициализировать ResourceManager? Этот код работает техника его подводит (пространство имен «СОТ»)C# Загрузить ресурс из библиотеки DLL (ResourceManager)

ResourceManager resourceManager = new ResourceManager("Mox", Assembly.GetExecutingAssembly()); 
Stream s = resourceManager.GetStream("Shader"); 
if(s == 0) 
    throw new Exception(); 

Я добавил ресурс «Shader.fx» с «Add-> Существующее», а затем установите сборку на Внедренный ресурс и «копия всегда» .. .Это бросает исключение, поэтому я знаю, что оно неправильно загружено ... какие-либо предложения?

+0

Есть ли причина, по которой вы не хотите использовать конвейер контента? –

+0

Какое исключение оно бросает, когда вы вставляете его? –

ответ

2

Я задал аналогичный вопрос по телефону gamedev.stackexchange.com. Ответ также может помочь вам, см. Ниже:

У меня есть еще одно решение в дополнение к Russell, которое позволяет вам использовать менеджер контента и позволяет встраивать все типы поддерживаемых XNA-содержимого.

XNA поддерживает ContentManager, хотя ресурс вместо контент-проекта. Чтобы использовать его, сделайте следующее. Конечно, в какой-то момент вам нужно будет передать ссылку на услуги вашей игры.

ResourceContentManager Content = new ResourceContentManager(game.Services, Resource1.ResourceManager); 

Используйте this скомпилировать шейдер или что-нибудь к XNB.

Добавить все и все XNB в свои ресурсы. Они просто загружают ваш контент, как обычно.

Content.Load<Texture2D>(".\\assetName") 
Смежные вопросы