在 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 添加和删除脚本的问题。这增加了不必要的代码和查找,但遗憾的是没有找到切换播放器的好方法。
背景:
我有 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 添加和删除脚本的问题。这增加了不必要的代码和查找,但遗憾的是没有找到切换播放器的好方法。