如何在Unity iOS中正确使用WebCamTexture ?

本文关键字:WebCamTexture Unity iOS | 更新日期: 2023-09-27 18:14:36

我最近在Unity中使用WebCamTexture API,但遇到了几个问题。

我最大的问题是方向。当我在手机上运行这个应用程序时,它在人像模式下无法正常工作:图像是定向的,所以它是横向的,而手机是纵向的。旋转手机也没用

然后我将应用程序的默认方向更改为横向,它可以工作,但图像被反射:字母等将在图像中向后。将图像在y轴上旋转180度没有帮助,因为它是单面图像。

下面是相机单独的代码:

cam = new WebCamTexture();
camImage.texture = cam;
camImage.material.mainTexture = cam;
cam.Play ();
camImage.transform.localScale = new Vector3(-1,-1,1);

其中camImage是一个RawImage。

我如何旋转图像,以正确地在肖像工作,以及正确地反映图像?我是否错误地使用了API ?

如何在Unity iOS中正确使用WebCamTexture ?

important -

多年来,在Unity3D中使用"NatCam"用于相机工作,无论是ios还是android,都是非常实用的-每个使用相机的应用程序都使用它。

没有其他现实的解决方案,直到Unity真正完成工作并包含(working:))相机软件。


解决方案基本上是这样的…

你必须每帧都这样做,你不能在"相机开始时"这样做。

Unity搞砸了,实际值只在一秒钟后才到达。这是一个众所周知的问题
private void _orient()
    {
    float physical = (float)wct.width/(float)wct.height;
    rawImageARF.aspectRatio = physical;
    float scaleY = wct.videoVerticallyMirrored ? -1f : 1f;
    rawImageRT.localScale = new Vector3(1f, scaleY, 1f);
    int orient = -wct.videoRotationAngle;
    rawImageRT.localEulerAngles = new Vector3(0f,0f,orient);
    showOrient.text = orient.ToString();
    }