您的位置:首页 > 健康 > 美食 > Unity iOS Vuforia 横竖屏切换摄像机镜像问题

Unity iOS Vuforia 横竖屏切换摄像机镜像问题

2024/10/6 2:22:30 来源:https://blog.csdn.net/sinat_25682007/article/details/141351914  浏览:    关键词:Unity iOS Vuforia 横竖屏切换摄像机镜像问题

问题:

unity iOS横屏时,主工程Portrait,unity工程AutoRotation,主工程打开unity后设置横屏方向会偶现出现摄像机翻转镜像问题。

unity iOS横竖屏切换时,主工程Portrait,unity工程AutoRotation,在手机设备iPhone 13Pro必现,横屏进入后在切换竖屏进入必镜像翻转。

原因:

在进入unity后,哪怕主工程设置正确的屏幕方向:Portrait和LandscapeLeft(iOS端设置朝右侧),但是进入unity后根据打印日志发现并不是正确的屏幕方向,会出现PortraitUpsideDown和LandscapeRight异常朝向方向。

解决方法:

Update监测横竖屏状态,强制翻转屏幕朝向。

    public bool isPortrait = true;public bool isCheck = true;private void UpdateRotate(){if(!isCheck) return;if (isPortrait && Screen.orientation != ScreenOrientation.Portrait){Debug.Log($"ScreenManager::UpdateRotate - IOS端,竖屏但是监测到屏幕:{Screen.orientation}不是竖屏,强制翻转");Screen.orientation = ScreenOrientation.AutoRotation;Screen.autorotateToPortrait = true;Screen.autorotateToPortraitUpsideDown = false;Screen.autorotateToLandscapeRight = false;Screen.autorotateToLandscapeLeft = false;Screen.orientation = ScreenOrientation.Portrait;}else if (!isPortrait && Screen.orientation != ScreenOrientation.LandscapeLeft){Debug.Log($"ScreenManager::UpdateRotate - IOS端,横屏但是监测到屏幕:{Screen.orientation}不是横屏,强制翻转");Screen.orientation = ScreenOrientation.AutoRotation;Screen.autorotateToPortrait = false;Screen.autorotateToPortraitUpsideDown = false;Screen.autorotateToLandscapeRight = false;Screen.autorotateToLandscapeLeft = true;Screen.orientation = ScreenOrientation.LandscapeLeft;}}

注意事项:

  1. iOS的左右朝向和Unity的左右朝向是相反的,Screen.orientation = ScreenOrientation.LandscapeLeft;相当于iOS的右侧。
  2. unity打包的工程设置为AutoRotation,并在unity启动成功后等待iOS发送过来横竖屏切换在设置,否则iOS主工程会报错,操作相同屏幕朝向参数异常。
  3. unity工程退出的时候,需要还原屏幕朝向,否则iOS主工程退出异常。
Screen.orientation = ScreenOrientation.AutoRotation;Screen.autorotateToPortrait = true;Screen.autorotateToPortraitUpsideDown = true;Screen.autorotateToLandscapeRight = true;Screen.autorotateToLandscapeLeft = true;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com