webcamTexture的旋转在Android3下unity3d不同

我在Android设备上旋转webcamtexture有困难。

这是我编辑的场景: 在这里输入图像说明

这是我手机中的图像: 在这里输入图像说明

您可以看到手机和编辑器之间的旋转和缩放差异。

这里是代码:

using UnityEngine; using UnityEngine.UI; using System.Collections; public class Camera_pnl : MonoBehaviour { //// Use this for initialization WebCamTexture webCameraTexture; void Start() { GUITexture BackgroundTexture = gameObject.AddComponent<GUITexture>(); BackgroundTexture.pixelInset = new Rect(0,0,Screen.width,Screen.height); WebCamDevice[] devices = WebCamTexture.devices; foreach (WebCamDevice cam in devices) { if (cam.isFrontFacing ) { webCameraTexture = new WebCamTexture(cam.name); webCameraTexture.deviceName = cam.name; webCameraTexture.Play(); BackgroundTexture.texture = webCameraTexture; } } } void Update () { if (Input.GetKey (KeyCode.Escape)) { Invoke("LoadGame",0.1f); } } void LoadGame () { webCameraTexture.Stop (); webCameraTexture = null; Application.LoadLevelAsync("Game"); } } 

我如何解决这个问题,让我的手机显示webcamtexture的正确的旋转?

Solutions Collecting From Web of "webcamTexture的旋转在Android3下unity3d不同"

您需要查看旋转方向,然后旋转捕获的input的预览,这可以通过实时旋转预览来完成。

 int rotAngle = -webCamTexture.videoRotationAngle; while( rotAngle < 0 ) rotAngle += 360; while( rotAngle > 360 ) rotAngle -= 360; 

下面的代码是来自Camera Capture Kit的一个插件,我们使用它( https://www.assetstore.unity3d.com/en/#!/content/56673 ) – 我们将其用于社交游戏/应用程序让用户并在游戏中分享照片。

在某些情况下,旋转angular度为270度或90度时,也需要翻转图像。 这是Android的代码。

 if( Application.platform == RuntimePlatform.Android ) { flipY = !webCamTexture.videoVerticallyMirrored; } 

当您渲染webcamtexture的预览以及获取像素时,需要考虑这些因素,如果要保存并共享图像,图像中的像素也必须旋转。昂贵的过程在预览中逐帧完成,这就是为什么你需要照片拍摄一次后才能做到这一点。

干杯