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

时间:2015-09-25 15:57:21

标签: c# ios unity3d camera aforge

我最近使用的是WebCamTexture API in Unity,但遇到了几个问题。

我最大的问题是方向。当我在手机上运行应用程序时,它在纵向模式下无法正常工作:图像是朝向的,因此当手机是人像时它是横向的。旋转手机没有用。

然后我将应用程序的默认方向更改为横向并且工作正常,但图像被反映出来:字母等在图像中会向后移动。在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?

1 个答案:

答案 0 :(得分:4)

重要 -

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

没有其他现实的解决方案,直到Unity实际完成这项工作并包括(工作:))相机软件。

解决方案基本上就是这个......

你必须这样做每一个框架,你不能这样做#34;当相机启动时#34;。

Unity f&up以上,实际值仅在一秒左右后到达。这是一个众所周知的问题

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();
    }