Я пытаюсь создать редактор игры с использованием формы C#, и я столкнулся с проблемой, когда дело доходит до десериализации; Я не могу использовать конвейер контента в приложении форм, так как у меня даже нет возможности добавить ссылку на контент для проекта. Как я могу использовать конвейер контента в моем приложении формы? Есть ли другой способ загрузки и десериализации моего XML-контента?Использование XNA Content Pipeline в форме C#
ответ
вручную редактировать файл .csproj и добавьте следующее в первой PropertyGroup
секции, которая содержит имя сборки, проект справ и т.д.
<ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
Вы, вероятно, нужно добавить
<XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
<XnaPlatform>Windows</XnaPlatform>
Перезагрузка проекта в VS, и вы должны иметь возможность добавлять ссылки на него.
Два указанных GUID для Windows и XNA (Windows). Вот список some common project type guids (хотя и слегка устаревший), если вам нужно перенацелить проект вообще.
Взгляните на Winforms Series 2: Content Loading AppHub sample.
В основном вы загружаете и вызываете соответствующие классы microsoft.xna.framework.content
для чтения ваших скомпилированных файлов xnb.
Вы должны использовать классы в пространствах имен в пределах microsoft.xna.framework.content.pipeline
, чтобы создать файлы xnb (что будет для вас проектом контента).
Смотрите здесь для обзора конвейера содержимого: What is the Content Pipeline?
Есть еще один способ загрузки и десериализация моего содержания XML?
Да, используйте любой метод сериализации .net, возможно, XDocument
.
Если весь контент должен обрабатываться во время сборки, выбор winforms1, вероятно, лучший выбор. Если какой-либо контент необходимо обрабатывать во время выполнения, то образец winforms2 - это путь. –
Поскольку OP спрашивал о добавлении проекта контента в его winforms one (который будет строить активы), я пошел на второй образец. –
Спасибо, очень похоже, это сработало; однако при десериализации я получаю следующую ошибку: «Не удается найти ContentTypeReader для System.Int32 []." Я предполагаю, что я пропустил ссылку или пространство имен, где-то, но я не знаю, что. Есть идеи? – Jamie