2016-03-13 151 views
1

我试图在android肖像模式下显示全屏Webcamtexture。 但当我在我的设备上建立和测试它的旋转和videoRotationAngle是90如何在Android肖像模式下将WebcamTexture全屏显示?

我使用RawImage作为纹理。我在某篇文章中看到,您必须旋转变换并找到正确的角度。但问题是,如果我旋转RawImage UI它将不再全屏视图。

var camImage:UnityEngine.UI.RawImage; 
    var baseRotation:Quaternion; 
    var webcamTexture:WebCamTexture; 
    var rotation:UnityEngine.UI.Text; 


function Start() { 

     webcamTexture = new WebCamTexture(Screen.width,Screen.height); 
     camImage.texture=webcamTexture; 
     camImage.material.mainTexture = webcamTexture; 
     webcamTexture.Play(); 
     rotation.text= webcamTexture.videoRotationAngle.ToString(); // to check the angle 


} 
+0

在执行任何旋转之前,您可以获取相机的宽度和高度,并使用它来将纹理拉伸到所需的尺寸。 我使用正交相机,所以我的代码可能不适用于您的实现。 – LoungeKatt

回答

1

那么你有两种选择:你既可以挑选纵向还是横向的块屏幕旋转,或者你可以自动旋转的对象,并根据屏幕边界伸展它。有关更多信息,请参见Screen.height和Screen.length。

+0

我的android版本只设置为肖像模式。转换旋转的问题会拉长太多,看起来不太好。 –

+0

如果您无法以不同的分辨率接收网络摄像头纹理,那么就我所知,它不能全屏显示而不失真或调整大小。 –

+0

当您在肖像模式下打开相机应用程序时,您看不到失真,这意味着它没有硬件限制。我正在寻找类似的东西。也许它需要构建插件 –

-1

您需要翻转并旋转它。如果你喜欢CameraCaptureKit(https://www.assetstore.unity3d.com/en/#!/content/56673),你会看到有不同的方式来实现你想要的。在CameraCaptureKit中,有一个自定义的RawImage组件,可以使用RawImahge的UV坐标来摆弄它,而不是漫过它。通过这种方式,您可以旋转图像90或270,并在手机以横向模式或以往任何模式运行时不用担心地翻转图像。

+0

这不是一个解决方案。这是一个广告。这是一款30美元的付费软件,用于解决任何试图使用实时相机视图的Android应用最古老和最知名的相机问题之一。该解决方案不是作者创作的一些革命性或专有创作。 – LoungeKatt

0

(mCamera.videoRotationAngle + 90) % 360将正确地旋转纹理,然后指定localScale,交换纹理的高度和宽度以固定大小。