Unity 小米VR一体机开发(一)

本文原创,转载请注明出处:https://blog.csdn.net/qq_36503704/article/details/82349474

小编第一次写这种东西,有什么问题,大家可以指出后一起讨论。下面进入正题。

一、开发环境

Unity版本:Unity 2018.1.6f1 (64-bit)

小米Sdk  :MIVR_Unity_SDK_1.8.2

unity下载地址就不说了,说一下小米SDK的下载地址。地址链接:小米开发平台小米Sdk下载地址

二、导入Sdk

解压之后的目录如下:

Unity 小米VR一体机开发(一)_第1张图片

developer_doc_cn.pdf是中文说明文档,大家一定要看完。

导入的话只需导入划红线的UnityPackage就可以了。

Unity 小米VR一体机开发(一)_第2张图片

这时候如果有这个报错:

直接双击点开,在报错的后面加一个ToString()就好了。改完的如下

public static void BuildAndroidPlayer()
        {
            string[] scenes = { "Assets/MIVR/Scenes/360ViewController.unity" };

            string error = BuildPipeline.BuildPlayer(scenes, "sample.apk", BuildTarget.Android, BuildOptions.None).ToString();

            if (!string.IsNullOrEmpty(error) && error.Length > 0)
            {
                throw new Exception("Build failed: " + error);
            }
        }

三、SDK说明书的解读

说明书说的很详细的,小编说几个比较重要的地方吧,其他我没讲到的大家可以自己去看。

1、设备和版本的要求:

目前支持机型为小米5,5s,5s Plus,Note2,小米 6 这五款小米手机和小米VR一体机,Unity v5.5.5及以上版本进行开发,使用其他版本可能会兼容性问题,反正就是奇葩的问题一大顿。还有重要的一点就是如果你的应用要发布,一定要用最新的SDK,以避免后续的审核出现问题。

2、Player Setting

Unity 小米VR一体机开发(一)_第3张图片

这个一定要选这个,一体机嘛,大家懂的,如果这个选择其他的会出现Bug。

3、输入系统 

Unity 小米VR一体机开发(一)_第4张图片

     这几个手柄按键类似MouseButton,但也有几个不太一样的,ConnectionState(按钮的状态,这三个都有)、Orientation( 手柄的朝向信息) 、Recentered(手柄是不是被重置)和HmdButtonUp (头盔上按键松开)等。还有几个比较重要,小编直接粘过来了。

1) V1头盔的按钮,长按是打开全局菜单,不会再发出HmdButtonUp 
2)手柄的touch区域左上角为原点。 
3) V1 手柄的右侧按钮为保留按钮,短按会启动全局菜单,长按会重置手柄的朝向,此按
钮不开放给开发者。 
4)一体机手柄 home 键(手柄正面下方圆圈按钮)的事件被系统保留,短按该按钮返回
home,长按为校准手柄。
 
5) 一体机手柄返回键(手柄正面上方三角按钮)的长按事件被系统保留,长按会启动全局
菜单,不再设置 MenuButtonDown和MenuButtonUp状态。 
6) 当应用程序处在最上一层级时(例如游戏根菜单界面),建议返回键的短按事件,调用
VrManager. ReturnToLauncher方法,实现用户短按返回键返回 Launcher的功能。 

按键事件的案例代码:

  private void Update()
  {         
       if (InputManager.ControllerState.HmdButtonUp)         
       {             
            // 要实现的功能       
       }     
  } 

还有一个必须说的是Pointer Input,小编也复制过来了

       如果想使用手柄射线来与场景中的物体和 UI 控件交互,则需要开发者替换掉默认的 Gaze Input Module,因为两种输入控制方式是相互冲突的。具体操作方式如下: 
1) 在Hierarchy View 中的 EventSystem中,添加PointerInput Module脚本。 
2) 使用MIVR/MiController/Prefabs/MiCamera替换Hierarchy View 中MIVR/Prefabs/ MiCamera实例。 
3) 在所有需要交互的Canvas中,删除GraphicRaycaster组件,替换为PointerGraphic 
Raycaster脚本。 
4)将MIVR/MiController/Prefabs/ControllerLoader拖拽至 Hierarchy View,ControllerLoader会自动根据机型加载对应模型MiController(手机 VR)或 MiControllerV1o (一体机)。 

5、Unity中的预览

1)Alt+鼠标水平移动:环顾四周 
2)Alt+鼠标垂直移动:抬头低头 
3)Ctrl+鼠标水平移动:左右转头 

遗憾的是不能模拟手柄按键的事件,希望以后会完善吧。

6、开发者签名

1、账号的申请

这个就需要去小米开放平台,注册账号。地址在这:小米开放平台。注册完账号还需要注册成为开发者。点击个人用户的资料修改就会看到如下界面。

Unity 小米VR一体机开发(一)_第5张图片
可以根据自己的实际情况选择,这里声明一下,个人开发者也可以上传应用。申请时的照片一定要完全符合要求,避免二次申请浪费时间。小编在这里跪了三次,大家注意.....

2、开启开发者模式

在手机小米VR中:点击----"我的"----"设置"----"关于帮助",进去之后会看到一个图标,连续点击就可以开启了,具体几下小编没记过,但是会出现提示的。

3、 开发者签名文件

Usb连接小米VR一体机,使用adb.exe查询设备的序列号。

图中的031603...........就是设备的序列号了。(这里说一下,小编用的手机测试,防止大家入坑)。拿到序列号就可以去下载证书了,地址在这:签名证书下载地址。

下载完事后就可以放入Unity文件夹中了,类似Gear VR,一样有路径要求,千万别写错。

路径: Project/Assets/Plugins/Android/assets/MiVR_sig/ 

4、 应用程序的 Manifest 

这里给大家说一个坑,测试的时候这个要有,测试完了要发布了,把这个去掉,不然会出错。不要提前去掉,不然测试打包时也会报错。小编猜的是主要是防止一些想绕过小米VR平台的黑应用。其他的大家自己修改就好了。

 
        
        
 

 

今天就先写到这了,这些都是些前期的准备工作,还一些小编踩过的坑,下次会继续更新。

你可能感兴趣的:(小米VR,unity)