Я использую XNA для визуализации некоторых данных и пытаюсь использовать рекламные щиты для данных и spritebatch для рисования текста в HUD.
Для рекламных щитов я использую следующий пример, который прекрасно работает:
http://create.msdn.com/en-US/education/catalog/sample/3d_audio
В этом примере есть спрайт с кошкой и собакой, где кошка проходит перед собакой или позади нее, в зависимости от их положения и положения камеры, как и следовало ожидать. Неважно, в каком порядке вызываются Cat.Draw и Dog.Draw. Эти парни взяты из BasicEffect.
Однако, если я добавлю класс, который наследует DrawableGameComponent и использует SpriteBatch, BasicEffect в других компонентах теряет свою глубинную сортировку, и четырехугольники отображаются в порядке вызова. Обратите внимание, что этот компонент добавляется в класс Game через this.Components.Add (...).
Есть ли несовместимость между BasicEffect и SpriteBatch? Проблема возникает всякий раз, когда вызывается SpriteBatch.Begin () / End (). Если я не называю это кошка / собака рендеринга в порядке.
Есть идеи?