1. 程式人生 > >Unity 小米VR一體機開發(一)

Unity 小米VR一體機開發(一)

小編第一次寫這種東西,有什麼問題,大家可以指出後一起討論。下面進入正題。

一、開發環境

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>

今天就先寫到這了,這些都是些前期的準備工作,還一些小編踩過的坑,下次會繼續更新。

相關推薦

Unity 小米VR一體機開發

小編第一次寫這種東西,有什麼問題,大家可以指出後一起討論。下面進入正題。 一、開發環境 Unity版本:Unity 2018.1.6f1 (64-bit) 小米Sdk  :MIVR_Unity_SDK_1.8.2 unity下載地址就不說了,說一下小米SDK的下載

Unity 小米VR一體機開發

四、demo製作 上次講了,小米VR一體機的前期準備和一些開發中的注意事項。今天小編用小米VR一體機做一個小的Demo。 首先還是看一下小米官方提供的Demo,小編主要看了一下   360ViewController,目錄如下。 看完之後,小編知道了如果想自己新

EasyAR+Unity開發HelloAR Demo配置

AR 開發開源 SDK 個人感覺: * ARTookit ,相關的使用材料和部落格較少,不建議新手入門。* * Vuforia ,並未使用過,不過在搜尋 AR 相關

NIO原理剖析與Netty初步----淺談高性能服務器開發

返回 創建 基於 register 訪問 io操作 nbsp info class 除特別註明外,本站所有文章均為原創,轉載請註明地址 在博主不長的工作經歷中,NIO用的並不多,由於使用原生的Java NIO編程的復雜性,大多數時候我們會選擇Netty,m

淺談WebService開發

man att set style 訪問 row nag 序列 ros 一、什麽是WebService: 簡單通俗來說,就是企業之間、網站之間通過Internet來訪問並使用在線服務,一些數據,由於安全性問題,不能提供數據庫給其他單位使用,這時候可以使

微信公眾號開發

jpg 解壓 china arc 公眾平臺 開發 技術分享 更換 微信公眾號 4.1 示例代碼設置 首先下載此處的php接入代碼 ,在公眾號中 配置 url 地址指向 文件 代碼 只需更換 自定義的token 即可 這樣就完成最初的接入 微信公眾平臺提供了一個php示例

從零開始學習OpenCL開發架構

處理器 多媒體 c++ stl context 實驗 通用 必看 是你 同時存在 1 異構計算、GPGPU與OpenCL OpenCL是當前一個通用的由很多公司和組織共同發起的多CPU\GPU\其他芯片 異構計算(heterogeneous)的標準,它是跨平臺的。旨在充

基於itchat的微信群聊小助手基礎開發

log 表達式 數據包 gin 找到 ont 基本 時間 msg 前段時間由於要管理微信群,基於itchat開發了一個簡單的微信機器人 主要功能有: 圖靈機器人功能 群聊昵稱格式修改提示 消息防撤回功能 鬥圖功能 要開發一個基於itchat的最基本的聊天機器人,

Superset 開發添加一個頁面

rate rst view key pri pre span bsp interface superset\models\core.py 下進行添加模型 class ExeclInfoAdd(Model): __tablename__ = ‘ExeclInfoAd

Python自動化開發【未完待續】

urn sts dha sel def open entos div 初始 1、創建項目    2、創建models from django.db import models # Create your models here. # 主機表 class Host(m

OpenCV iOS開發——安裝(轉)

osi ctu ren png object-c 下載 eww load 信息 OpenCV是一個開源跨平臺的的計算機視覺和機器學習庫,可以用來做圖片視頻的處理、圖形識別、機器學習等應用。本文將介紹OpenCV iOS開發中的Hello World起步。

android的百度地圖開發

one rst dir 還要 遠程服務 存儲 返回 src copy 1,註冊百度開發者賬號 2,申請key ,註意開發版SH和發布版的SH 獲取開發版SHA1: 輸入命令:keytool -list -v -keystore debug.keystore,回車輸入密鑰

帶你從零學ReactNative開發跨平臺App開發

roi 權限 完整性 2-2 apps tar 我們 利用 ejs 首先自我介紹一下,本人鳥窩,現在就職於xx共享汽車,擔任主程,目前用的技術棧是.net core+angular。 今天我講的是關於ReactNative從零基礎開發,希望可以對入門的新手,起到

FiddlerCoreAPI開發源碼分析

報文 就是 obj pre 一段 int cal ssi write 1.前言 前一段時間想利用fiddlercore截取本地HTTPS的流量做一些分析,按照樣例代碼的註釋學習了一下,沒搞清楚怎麽實現,後來又在網上查了些資料,對HTTPS的處理提及很少,都沒有解決我的問題,

微信小程序的開發

ram tle ati java ndt 喜歡 top lex navig 我現在在學習,微信小程序開發,剛剛看看一篇對我特別有用的博客文章,我就把摘抄過來了,好好的學習一下。 序言 開始開發應用號之前,先看看官方公布的「小程序」教程吧!(以下內容來自微信官方公布的「小程序

微信公眾號開發微信驗證開發者服務器接口

mage down charset 流程圖 ringbuf image put 不知道 als 微信驗證開發者服務器接口 微信驗證開發者服務器接口 如圖所示,開發者可填寫自己服務器的驗證token的接口地址,以及自定義的token(博主申請的測試號,使用natapp來進

論壇開發項目準備

jpg 論壇 info 技術分享 準備 alt ima image 技術 論壇開發(一)項目準備

QtCreator插件開發——QtCreator插件實例

QtCreator插件開發QtCreator插件開發(一)——QtCreator插件實例 版權聲明:本系列文章翻譯自:Writing Qt Creator Plugins。如果任何人或機構對於版權有異議,請聯系我。本文將使用QtCreator-2.8.1版本進行插件開發,由於QtCreator-2.8.1的插

Unity3D關於VR的Demo

pos cut 當前 sets sselect 環境 用戶界面 tis eas https://blog.csdn.net/qq_15807167/article/details/52048998?locationNum=8&fps=1 閱讀數:9716

星雲鏈智能合約開發:Mac下安裝的準備工作

星雲鏈開發環境安裝 nebulasio安裝 星雲鏈安裝 星雲鏈開發 智能合約開發 Homebrew安裝 包管理工具可以讓你安裝和更新程序變得更方便,目前在Mac系統中最受歡迎的包管理工具是 Homebrew. 我們安裝Homebrew是為了安裝星雲鏈開發環境時更方便快捷。 安裝方法 第一步