Unity项目在亚马逊KindleFire设备上旋转不正确的解决方案

前提:
     在亚马逊设备上,总部要求发布的版本必须使用LandscapeLeft方向。按照经验,在UnityPlayerSettings中设置Orientation即可。
 
问题表现:
     编出的版本安装到设备后,出现以下问题。
     1、设备LandscapeLeft方向放置,打开应用后,应用正常
     2、设备LandscapeRight方向放置,打开应用后旋转设备,应用会旋转到LandscapeLeft方向,然后不在旋转。
     3、非LandscapeLeft /Right方向放置设备,应用打开后会在LandscapeLeft /Right自动切换。
 
查找原因:
     对照以前的项目,发现项目中缺少Mega-Fiers插件,将Mega-Fiers插件中的类一个个删除,最后定位到MegaDisplaceWebCam.cs文件。检查这个文件,没有发现设置设备方向的相关代码。然后一行一行删除代码,发现public WebCamTexture    map这行代码对设备旋转有影响,同时找到
Kindle Fire调试,以及它没有Orientation Sensor,以前知道WebCamTexture会使设备开启摄像机权限,综合起来,推测亚马逊设备对方向的判断会受到摄像机权限影响,果断在AndroidMainfest文件中加入摄像机权限android.permission.CAMERA,再编版本测试,应用正常运行。
 
后续:
     应用发到亚马逊后被打回来,因为多了android.hardware.camera、android.hardware.camera.autofocus两个权限,导致一部分不支持上述权限的设备不能够安装,通过为Android程序申请权限注意文章,顺利解决问题。 
 
posted @ 2016-09-05 14:32  炘恪  阅读(428)  评论(0编辑  收藏  举报