在Windows Phone XNA 4.0中,我在编译时收到以下错误: Windows Phone平台不支持自定义着色器。
这真的很烦人,因为我有一个项目的Xbox 360版本,以及该项目的Windows版本。
我尝试使用基于编译的#if !WINDOWS_PHONE
和#endif
,但没有运气。似乎它忽略了这一点。
如何在Windows Phone项目中编译时排除或忽略此文件?
答案 0 :(得分:2)
Windows Phone 7上的XNA游戏自定义着色器不受支持,但我不知道SilverLight的任何功能。
然而,有几种内置效果可以在XNA中使用:
•SkinnedEffect
•EnvironmentMapEffect
•DualTextureEffect
•AlphaTestEffect
以XNA Reach
配置文件为目标的游戏将跨平台,因为Reach配置文件包含在XNA的所有实现中共享的元素。要使用更高级的选项,需要定位Hi-Def
配置文件。但是Hi-Def
与Windows Phone没有兼容性。
答案 1 :(得分:2)
作为一种解决方法,您可以:
由于您可能还希望在WP7上使用比在Xbox上使用的更小的纹理等,我只需为WP7和Xbox创建单独的游戏和内容项目,并将公共游戏代码移动到库中。
哦,告诉我你是否想出如何根据例如解决方案配置选择不同的内容项目,以便不需要单独的游戏项目:)
答案 2 :(得分:0)
只是一个猜测,但您可以使用#ifndef WINDOWS_PHONE
吗?