问题发现过程
我想实现在一个场景中前半段看全景视频作为背景,后半段用天空盒,这样就涉及到了切换问题,本来用了一个很直接的方法,摆了两个相机,一个的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;
}
...
}
网友评论