我已将在Unity 5.2.1f1中创建的应用程序导出到Visual Studio进行进一步处理。我确实将以下设置应用于Package.appxmanifest:
支持的轮播:
导出到WP8.1设备(带Lumia Denim的诺基亚Lumia)后,无论是调试还是发布/主配置,旋转手机仍会导致应用从横向模式切换到纵向模式。
接下来,我在生成的App.xaml.cs中更改了以下行:
this.InitializeComponent();
appCallbacks = new AppCallbacks();
进入这个:
this.InitializeComponent();
Windows.Graphics.Display.DisplayInformation.AutoRotationPreferences = Windows.Graphics.Display.DisplayOrientations.Landscape | Windows.Graphics.Display.DisplayOrientations.LandscapeFlipped;
appCallbacks = new AppCallbacks();
试图加强Package.appxmanifest中完成的设置。仍无济于事,该应用程序仍然可以自由旋转。我还检查了对AutoRotationPreferences的进一步调用(想想可能是其他一些自动生成的代码),但没有找到任何东西。
我可以尝试任何其他选项,我可能会监督的任何细节,还是我使用一些不赞成的方法来解决这个问题?任何帮助将不胜感激!
答案 0 :(得分:2)
我知道这是一篇旧帖子,但我发现this link提供link to a blog post,表示如何在代码中禁用纵向模式。
public static void SetScreenOrientationToLandscape()
{
SetDisplayAutoRotationPreferences( (int) ORIENTATION_PREFERENCE.ORIENTATION_PREFERENCE_LANDSCAPE |
(int) ORIENTATION_PREFERENCE.ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED );
}
public enum ORIENTATION_PREFERENCE
{
ORIENTATION_PREFERENCE_NONE = 0x0,
ORIENTATION_PREFERENCE_LANDSCAPE = 0x1,
ORIENTATION_PREFERENCE_PORTRAIT = 0x2,
ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED = 0x4,
ORIENTATION_PREFERENCE_PORTRAIT_FLIPPED = 0x8
}
[System.Runtime.InteropServices.DllImport( "User32.dll" )]
public static extern bool SetDisplayAutoRotationPreferences( int value );
答案 1 :(得分:1)
如果要在Unity中使用Windows商店配置此类设置,则应在Unity工具中执行此操作。看来,在那里定义的配置有点覆盖VS解决方案中的包清单。
要执行此操作,请转到Unity中的 构建设置 菜单(Ctrl
+ Shift
+ B
),然后按< strong> 播放器设置 ,然后在右侧显示的刀片上打开 分辨率和演示文稿 磁贴。只需在此处选择允许自动旋转的方向。这应该可以解决问题。
希望这可以解决问题。