2011-10-26 78 views
3

在Windows Phone XNA 4.0中,我在編譯時收到以下錯誤:windows phone平臺不支持自定義着色器Windows Phone自定義着色器錯誤?

這真的很煩人,因爲我有一個Xbox 360版本的項目,還有一個Windows版本的項目。

我嘗試使用基於編譯#if !WINDOWS_PHONE#endif,但沒有運氣。似乎它忽略了這一點。

如何在Windows Phone項目中編譯時排除或忽略此文件?

回答

2

作爲一種變通方法,您可以:

  • 創建WP7和Xbox
  • 手動開關從「編譯」對WP7「無」的「生成操作」獨立遊戲和內容項目(爲受虐狂)
  • 由於資產構建操作是在.contentproj文件中定義的,因此您可以有2個版本或編寫一個修改它的腳本(並且該腳本可能會自動作爲編譯過程的一部分運行)

因爲您可能還想在WP7上使用比在Xbox上使用更小的紋理等,我只是爲WP7和Xbox創建單獨的遊戲和內容項目,並將公共遊戲代碼移動到庫中。

哦,並告訴我,如果你弄清楚如何不同內容的項目基礎上,例如,該解決方案配置,以便不需要單獨的遊戲項目:)

+0

謝謝,會做! :) –

0

只是一個猜測,但你可以用#ifndef WINDOWS_PHONE來代替嗎?

+0

這並不工作選擇。 –

2

不支持在Windows Phone 7上爲XNA遊戲定製着色器,但我不知道SilverLight的任何功能。

有幾個內置的可以在XNA但是使用效果:

•SkinnedEffect

•EnvironmentMapEffect

•DualTextureEffect

•AlphaTestEffect

奧運會爲目標的XNA Reach配置文件將作爲覆蓋配置文件包含在跨平臺中這些元素在XNA的所有實現中共享。要使用更高級的選項,需要針對Hi-Def配置文件。但是Hi-Def與Windows Phone不兼容。