Unity - 移动设备摄像头是镜像的

时间:2017-01-30 22:12:04

标签: c# canvas unity3d camera

我发现了大量类似的问题,但没有一个修复是最新的或似乎有效。我希望自己这样做而不是使用资产。

我正在以纵向模式创建增强现实系统,您可以使用前置或后置摄像头。我已经修复了相机的旋转问题,但iOS后置摄像头是镜像的(如果我从左侧移动我的手指,它来自相机右侧)和Android前置摄像头是相同的,但背面是细

将设备相机进纸放置在画布上的ui Image对象下,该画布上应用了平面网格。我还试图将其作为一个平面和一个原始图像。

现在,我所拥有的Canvas直接与统一游戏相机绑定,并且Canvas具有投射设备相机源的图像对象。由于平面和图像对象都是单面的,如果我翻转它,我就会得到一个黑屏。我需要镜像设备摄像头,而不是游戏对象,我不知道该怎么做。

public GameObject CamFeedObj;
WebCamTexture webcam;
WebCamDevice[] devices;

void Start()
{
    platform = Application.platform;
    devices = WebCamTexture.devices;
    webcam = new WebCamTexture(devices[0].name);
    CamFeedObj.GetComponent<MeshRenderer>().material.mainTexture = webcam;

    // Fixes rotation issue
    if(platform == RuntimePlatform.IPhonePlayer){
        CamFeedObj.transform.eulerAngles = new Vector3(0,-90,90);
    }
    webcam.Play();
}

2 个答案:

答案 0 :(得分:3)

您可以创建一个翻转x坐标的简单着色器。另一种选择是将你的ui图像的x比例乘以-1。

enter image description here

enter image description here

答案 1 :(得分:0)

我在iPad Pro上遇到了同样的问题。我正在使用统一版本2019.2.19f1,xcode 11.3.1。

我使用平面渲染相机,其变换如下: enter image description here

我以前用来翻转的代码段:

build.gradle