必威体育Betway必威体育官网
当前位置:首页 > IT技术

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

时间:2019-08-15 21:42:10来源:IT技术作者:seo实验室小编阅读:66次「手机版」
 

小米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

解压之后的目录如下:

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

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

这时候如果有这个报错:

直接双击点开,在报错的后面加一个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

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

3、输入系统 

这几个手柄按键类似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、账号的申请

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

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

2、开启开发者模式

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

3、 开发者签名文件

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

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

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

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

4、 应用程序的 Manifest 

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

 <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>

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

相关阅读

用友NC二次开发问题汇总【转】

一、供应链采购订单问题 在采购订单参照请购单时,若选择了10行请购单的记录,采购订单的表体也就显示了10条记录,如何才能实现还可以

游戏开发学习路线

当你在吃鸡,王者农药的时候是否有想过如何才能做出一款这样让人神迷的游戏? 游戏开发这个方向看起来目标很明确,但其实是个领域很广

(转)Unity 如何减少DrawCall

阅读目录前言:看看优化需要从哪里着手?CPU的方面的优化:GPU的优化内存的优化回到目录前言:刚开始写这篇文章的时候选

以开发的视角做设计:开发眼中的设计稿长什么样?

面对完全不一样的媒介,设计师们会有不一样的目标,也会使用不一样的手法进行设计。 比如说一名 UI 设计师与平面设计师的最大区别,大

Java8与游戏开发(五)

游戏开发很重要的一点就是系统的并发性能,体现在单位时间内处理的请求数,还有同时连接的最大用户数。 基于Java语言实现的Netty不仅

分享到:

栏目导航

推荐阅读

热门阅读