代码之家  ›  专栏  ›  技术社区  ›  Karim A. Karim

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

  •  2
  • Karim A. Karim  · 技术社区  · 11 年前

    我最近在使用 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 回复  |  直到 11 年前
        1
  •  4
  •   Fattie    8 年前

    重要的-

    几年来,在Unity3D中使用“NatCam”进行拍照工作,无论是ios还是droid,都是非常实用的——每一个使用相机的应用都会使用它。

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