如何在 Unity iOS 中正确使用 WebCamTexture?
How can I properly use WebCamTexture in Unity iOS?
我最近在使用 WebCamTexture API in Unity,但 运行 遇到了几个问题。
我最大的问题是方向。当我 运行 我 phone 上的应用程序时,它无法在纵向模式下正常工作:图像的方向是横向的,而 phone 是纵向的。旋转 phone 没有帮助。
然后我将应用程序的默认方向更改为横向并且它有效,但图像被反射:字母等在图像中会向后。在 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?
重要-
多年来,在 Unity3D 中使用 "NatCam" 进行相机工作实际上是唯一可行的,无论是 ios 还是 droid - 每个使用相机的应用程序都在使用它。
没有其他现实的解决方案,直到 Unity 真正完成工作并包括(工作:))相机软件。
解决方案基本上就是这样...
你必须每一帧都这样做,你不能这样做"when the camera starts"。
Unity f'd 起来,实际值仅在一秒左右后到达。这是一个众所周知的问题
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();
}
我最近在使用 WebCamTexture API in Unity,但 运行 遇到了几个问题。
我最大的问题是方向。当我 运行 我 phone 上的应用程序时,它无法在纵向模式下正常工作:图像的方向是横向的,而 phone 是纵向的。旋转 phone 没有帮助。
然后我将应用程序的默认方向更改为横向并且它有效,但图像被反射:字母等在图像中会向后。在 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?
重要-
多年来,在 Unity3D 中使用 "NatCam" 进行相机工作实际上是唯一可行的,无论是 ios 还是 droid - 每个使用相机的应用程序都在使用它。
没有其他现实的解决方案,直到 Unity 真正完成工作并包括(工作:))相机软件。
解决方案基本上就是这样...
你必须每一帧都这样做,你不能这样做"when the camera starts"。
Unity f'd 起来,实际值仅在一秒左右后到达。这是一个众所周知的问题
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();
}