美文网首页
控制pico—unity中双目摄像机的clearFlags问题

控制pico—unity中双目摄像机的clearFlags问题

作者: 哇哇佳 | 来源:发表于2020-04-05 22:46 被阅读0次

问题发现过程

我想实现在一个场景中前半段看全景视频作为背景,后半段用天空盒,这样就涉及到了切换问题,本来用了一个很直接的方法,摆了两个相机,一个的clearFlags是Solider color,另一个是sky box,在需要的时候关闭一个开启另一个,后来发现,因为pico的手柄和摄像机都是在一个预制体里面,在切换的过程中,手柄的射线会报错,尝试找出原因,是我切换的时候关了?还是

这个东西出问题了?然后打包出来好几次,还是没有解决。所以我换了一个思路:

用一个相机,然后控制相机的clearFlags,代码如下

public void Cam(Camera ca, CameraClearFlags fla)

    {

        ca.clearFlags = fla;

    }

我写了一个方法,来控制clearFlags,但是,问题来了,pico的双目相机,在运行时无法更改clearFlags,因为他挂了一个这个代码

这个里面的update里写了这样几句,也就是把最初始的clearFlags的值,在update里一直赋给clearFlags,所以运行的时候我的方法一直不奏效,所以禁用掉update中的赋值语句就好了。

void Start()

    {

        Setup(eyeSide);

        SetupUpdate();

        if (eyecamera != null)

        {

            #region BoundarySystem

            // record

            eyeCameraOriginCullingMask = eyecamera.cullingMask;

            eyeCameraOriginClearFlag = eyecamera.clearFlags;

            eyeCameraOriginBackgroundColor = eyecamera.backgroundColor;

            applicationOriginFrameRate = Application.targetFrameRate;

            boundaryFrameRate = BoundarySystem.UPvr_GetFrameRateLimit();

            #endregion

        }

    }

void Update()

{...

  if (eyecamera.clearFlags != eyeCameraOriginClearFlag)

                {

                    eyecamera.clearFlags = eyeCameraOriginClearFlag;

                    eyecamera.backgroundColor = eyeCameraOriginBackgroundColor;

                }

...

}

相关文章

网友评论

      本文标题:控制pico—unity中双目摄像机的clearFlags问题

      本文链接:https://www.haomeiwen.com/subject/nklmphtx.html