首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >虚拟现实播放器控制器没有显示给字符控制器。

虚拟现实播放器控制器没有显示给字符控制器。
EN

Stack Overflow用户
提问于 2016-10-28 10:27:34
回答 1查看 1.7K关注 0票数 7

我正在开发一个多人游戏,其中一个普通字符控制器用户VR用户可以参与。所以有两种模式的游戏,通过用户可以加入,

  1. 正常模式(字符控制器)
  2. VR模式(HTC VR耳机)

我能够管理这些模式,用户可以参与任何模式。,但问题是普通播放器(字符控制器)无法查看VR控制器(HTC控制器),因为这些对象在角色控制器的一侧被关闭,所以如何将VR控制器显示给普通玩家方,这是VR播放器目前正在做的事情。

(我尝试过)我制作了一个对象,并试图模仿它相对于VR控制器的位置和旋转,但它不是作为模拟源(VR控制器)的对象关闭(在正常的播放器侧,但在VR模式下工作),并且它们的位置没有变化。如何在unity3d中向其他用户展示VR控制器??

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-07 07:43:44

经过三天的努力,我终于用这些步骤解决了这个问题。下面给出了这些步骤,以便以后的用户不会陷入这个问题,因为没有其他全面的指南可供使用:

  1. 网络变换为头(简单立方体)制作一个网络身份游戏对象
  2. 使用网络标识和网络转换为(右)控制器(简单立方体)制作一个游戏对象
  3. 为(左)另一个具有网络标识和网络转换的控制器(简单立方体)制作一个游戏对象
  4. 制作以上所有游戏对象的预制件。
  5. 将所有三个预制件添加到网络管理器中(已注册的可预制件列表)
  6. 从场景中删除三个预制件
  7. 添加到我的虚拟现实播放器下面的脚本(详见注释),并分配各自的预制和游戏对象 公共类VRPlayerCtrl : htc公共GameObject rightContSource的NetworkTransform {//源游戏对象头、左和右控制器对象;公共GameObject leftContSource;公共GameObject headObjSource;//预制板来分配头、左控制器和右控制器公共GameObject vrHeadObjPrefab;公共GameObject vrLeftCtrlPrefab;公共GameObject vrRightCtrlPrefab;GameObject vrHeadObj;GameObject vrHeadObj;vrLeftCtrl;void (){(“vr播放器的启动”);if (){//实例化预制组件();//禁用了虚拟现实播放器一侧的conroller网格,因此不能由他查看vrLeftCtrl.GetComponent().enabled = false;vrRightCtrl.GetComponent().enabled = false;}//实例化启动头和vr控制器对象,以便普通玩家可以查看CmdInstantiteHeadAndController() {Debug.Log(“实例化控制器和head对象”);vrHeadObj =(GameObject)实例化(VrHeadObjPrefab);vrLeftCtrl =(GameObject)实例化(VrLeftCtrlPrefab);vrRightCtrl =(GameObject)实例化(VrRightCtrlPrefab);//对客户端( NetworkServer.Spawn(vrHeadObj);NetworkServer.Spawn(vrLeftCtrl);NetworkServer.Spawn(vrRightCtrl);} void (){ if (!isLocalPlayer) {返回;}//同步网络CmdControllerPositionSync()上的pos );}//同步VR控制器对象上的位置,以便普通用户命令可查看VR播放器的移动/动作( CmdControllerPositionSync() ){ vrHeadObj.transform.localRotation = headObjSource.transform.localRotation;vrHeadObj.transform.position = headObjSource.transform.position;vrLeftCtrl.transform.localRotation = leftContSource.transform.localRotation;vrRightCtrl.transform.localRotation = rightContSource.transform.localRotation;vrLeftCtrl.transform.localPosition = leftContSource.transform.position;vrRightCtrl.transform.localPosition = rightContSource.transform.position;}}

恭喜你所做的一切!

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40303149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档