在 Unity 中更改 OVRPlayer 相机

Changing OVRPlayer camera in Unity

背景: 我有 3 个 Oculus OVRPlayerControllers,我想在它们之间移动。 OVRPlayers 由计时器从堆栈加载,例如每 10 秒加载一次新播放器,旧播放器为 SetActive(false).

我有两个可能的解决方案:

//1. Changing tag to MainCamera

    player = Instantiate(resource) as GameObject;
    player.SetActive(true);
    player.tag = "MainCamera";

//2. Enabling new Cameras and disabling old Cameras by loop

    oldPlayer.tag = "Untagged";
    oldPlayer.SetActive(false);
    //New player loaded from prefab and then->
    Camera[] cameras = player.GetComponentsInChildren<Camera> ();
    foreach(Camera cam in cameras){
       cam.enabled = false;
    }

但其中 none 有效。新角色控制器已正确加载,IO 工作正常,但相机处于非活动状态,只是一个黑色视图。 对如何重新分配 OVRPlayer 摄像机有什么想法吗?

编辑: Unity 首先将 OVRPlayer 注册为 main 或类似的东西,因为稍后当我在编辑器中手动重新启用它时,我也可以在游戏视图中使用它。但是我需要重新定义这个 "main or something similar".

解决了从一个 OVRPlayer 添加和删除脚本的问题。这增加了不必要的代码和查找,但遗憾的是没有找到切换播放器的好方法。