unity之VR漫游模式(一)

unity之VR漫游模式

  • 1、环境
  • 2、GVR 部分解析
  • 3、漫游思路及代码
  • 4、Demo

1、环境

  • 开发环境:win10
  • 设备:创维V901+配套手柄+nolo手柄
  • VR开发工具包:GVR,也就是你所用VR组件源码,研究源码,才能看透VR怎么用啊
  • 游戏引擎:Unity2017.3.1f1
  • 安卓环境:
    unity之VR漫游模式(一)_第1张图片
  • VR环境:
    unity之VR漫游模式(一)_第2张图片

2、GVR 部分解析

  • 核心在于Player,它是手柄的形态
  • Main Camera:主相机,是我们视角所在
  • LeftController/RightController:nolo左右手柄控制器
  • GvrControllerPointer:设备上按钮点击,称之为凝视点击
  • GvrEventSystem:画布有EventSystem才能用ui,VR需要它才能使用,主要是GVRPointerInputModel组件()
  • GvrControllerMain:控制输入(手柄、鼠标、USB…)
  • GvrEditorEmulator:在Unity编辑器中提供鼠标控制的头部跟踪仿真
  • BoundaryRegionManager:player的界限
  • Laser:控制点击发射的激光
    unity之VR漫游模式(一)_第3张图片
    unity之VR漫游模式(一)_第4张图片

3、漫游思路及代码

  • 很久之前的思路
  • 目前大致思路没变,但因考虑到需要实现UI跟随,做了一些细节改变。
  • 先认识组件GVR Head:头部跟踪(倘若target绑定其他组件,不为空,视角便会朝向被绑定的组件),此处我们设为空,通过获取我们头部的旋转的角度,且在适合的视角范围内进行前进或停止。
    unity之VR漫游模式(一)_第5张图片
    获取到整体player,并让它随着相机视角而进行移动
    在这里插入图片描述
    unity之VR漫游模式(一)_第6张图片
  • 注意以下几点:
    1、坐标系及方向、角度的设计
    2、物体的移动方式选择(由于我做的是家装及购物模块的,所以某些情况下会存在穿墙,这里就需要设计如何去做,譬如:从外面可以穿进来,但是里面却不能穿出去)
    3、Time.deltaTime:表示从上一帧到当前帧的时间,以秒为单位。
    FixedUpdate:在固定的时间间隔执行,不受游戏帧率的影响
    为防止卡顿:speed * Time.deltaTime ,保证场景运行在帧数不同的情况下物体移动速度都一样,此时物体是按时间移动,与帧数无关。
    另,FixedUpdate的时间间隔可通过edit->project setting->time改变
    unity之VR漫游模式(一)_第7张图片

4、Demo

官网 unity Demo
unity之VR漫游模式(一)_第8张图片

你可能感兴趣的:(unity,unity,vr,虚拟现实,游戏开发)