如何在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 ?
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();
}