现在网上关于MR 录制的分享已经很多,这个我就不过多介绍了,主要说下自身关于 externalcamera.cfg 添加后发生的异常情况做下说明,希望对遇到同类问题的人能有所帮助。先说说我先后遇到的问题:
1、第三个追踪器 添加 SteamVR_TrackedObject 组件 没有自动识别 设备编号,这个比较简单,注意自己的 SteamVR Plugin 的版本就好,Asset Store 上有,或者去网上down个下来就好,给大家个网上的链接:1.2.0版本
2、加入externalcamera.cfg 后手柄操作无法识别问题,说白了也比较简单。
问题出在 SteamVR_Render.cs 中
void Awake()
{
if (externalCamera == null && System.IO.File.Exists(externalCameraConfigPath))
{
var prefab = Resources.Load<GameObject>("SteamVR_ExternalCamera");
var instance = Instantiate(prefab);
instance.gameObject.name = "External Camera";
externalCamera = instance.transform.GetChild(0).GetComponent<SteamVR_ExternalCamera>();
externalCamera.configPath = externalCameraConfigPath;
externalCamera.ReadConfig();
}
}
这里会从预设中创建一个类似 CameraRig的对象,但游戏中我们一般已经创建好类似的控制对象,所以不需要重新创建,可以根据自己的第三控制器(或者追踪器)路径直接找到对应组建 (SteamVR_ExternalCamera) 进行数据配置。
有需要的可参考我的代码其实很简单
void Awake()
{
if (externalCamera == null && System.IO.File.Exists(externalCameraConfigPath))
{
var control3 = GameObject.Find("[CameraRig]/Controller (third)");
externalCamera = control3.transform.GetChild(0).GetComponent<SteamVR_ExternalCamera>();
externalCamera.configPath = externalCameraConfigPath;
externalCamera.ReadConfig();
}
}
下面是我的目录