EasyAR 3.0切换摄像头画面缩放翻转的问题

之前一直使用Vuforia做AR项目,现在新公司用EasyAR做项目,需要实现切换摄像头的功能。

1.首先一个问题是如果使用默认前置摄像头初始化,在有的机器上会出现打不开摄像头,或者画面被缩放的问题。

同时有一些奇怪的问题都可以用这种方式规避(不是解决注意)

一定使用后置摄像头初始化,如果你需要默认前置,也一定用后置摄像头初始化,然后马上切换到前置摄像头。

2.Easy切换到前置摄像头画面会被翻转的问题

EasyAR 使用数据流写入的方式进行摄像机渲染,导致我在网上找到的一个翻转摄像机的代码水平翻转失效,但是只要将这个脚本挂在Camera上不用做任何操作就可以规避EasyAR切换摄像头反转的问题(因为项目年前上线,暂时也没有时间去查看为什么,算是个应急的解决方案吧)

代码:

using System;

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

[RequireComponent(typeof(Camera))]

public class MirrorFlipCamera : MonoBehaviour

{

    new Camera camera;

public bool flipHorizontal;

public bool flipVertical;

void Awake()

    {

        camera = GetComponent();

    }

      void OnPreCull()

    {

        camera.ResetWorldToCameraMatrix();

        camera.ResetProjectionMatrix();

        Vector3 scale = new Vector3(flipHorizontal ? -1 : 1, flipVertical ? -1 : 1, 1);

        camera.projectionMatrix = camera.projectionMatrix * Matrix4x4.Scale(scale);

    }

    void OnPreRender()

    {

        GL.invertCulling = flipHorizontal;

    }

    void OnPostRender()

    {

        GL.invertCulling = false;

    }

}

你可能感兴趣的:(EasyAR 3.0切换摄像头画面缩放翻转的问题)