Windows Phone自定义着色器错误?

时间:2011-10-26 19:25:40

标签: windows-phone-7 xna xna-4.0

在Windows Phone XNA 4.0中,我在编译时收到以下错误: Windows Phone平台不支持自定义着色器

这真的很烦人,因为我有一个项目的Xbox 360版本,以及该项目的Windows版本。

我尝试使用基于编译的#if !WINDOWS_PHONE#endif,但没有运气。似乎它忽略了这一点。

如何在Windows Phone项目中编译时排除或忽略此文件?

3 个答案:

答案 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上手动将'Build Action'从'Compile'切换为'None'(仅适用于masochists)
  • 由于资产构建操作是在.contentproj文件中定义的,因此您可以使用它的2个版本或编写修改它的脚本(并且该脚本可能会自动作为编译过程的一部分运行)

由于您可能还希望在WP7上使用比在Xbox上使用的更小的纹理等,我只需为WP7和Xbox创建单独的游戏和内容项目,并将公共游戏代码移动到库中。

哦,告诉我你是否想出如何根据例如解决方案配置选择不同的内容项目,以便不需要单独的游戏项目:)

答案 2 :(得分:0)

只是一个猜测,但您可以使用#ifndef WINDOWS_PHONE吗?

相关问题