HoloLens開發手記 - Unity之Tracking loss

當HoloLens設備不能識別到自己在世界中的位置時,應用就會發生tracking loss。默認情況下,Unity會暫停Update更新循環并顯示一張閃屏圖片給用戶。當設備重新能追蹤到位置時,閃屏圖片會消失,并且Update循環還會繼續。

此外,用戶也可以手動處理這個切換過程。發生tracking loss期間,如果不做任何處理動作,那么所有的場景中的全息內容將會處于body-locked狀態。

?

?

默認處理方式?Default Handling


?

默認情況下,發生tracking loss期間應用所有的更新動作、事件和消息都會被暫停。同時會應用會顯示一張圖片給用戶。可以用通過項目設置Player settings->?Splash Image->Holographic Tracking Loss image選項來設置tracking loss要顯示的圖片。

?

?

?

手動處理 Manual Handling


?

為了手動處理tracking loss, 你需要在上面提到的設置選項上取消勾選“Display tracking loss image”選項。之后就需要使用下面特定的API來處理追蹤狀態變化。

命名空間:?UnityEngine.VR.WSA

類型:?WorldManager

  • World Manager提供了一個事件(WorldManager.OnPositionalLocatorStateChanged)來讓我們識別追蹤狀態(追蹤丟失/追蹤可獲取到),同時還提供了一個屬性來查詢當前追蹤狀態(WorldManager.state)
  • 當追蹤狀態丟失時,場景中相機將立刻靜止,不會再移動,即使用戶在運動。這意味全息圖形將不再響應用戶的物理位置的變化,所有內容都會相對用戶身體靜止

在手動處理追蹤狀態變化時,你需要每一幀都查詢當前追蹤狀態,或者處理OnPositionalLocatorStateChanged事件。

?

輪詢 Polling

?

追蹤狀態最重要的一個狀態是PositionalLocatorState.Active,這意味著當前HoloLens的狀態追蹤正常工作。任何其他的狀態都會導致攝像機只剩下旋轉增量,而忽略位置變化。

例如:

?

void Update()
{switch (UnityEngine.VR.WSA.WorldManager.state){case PositionalLocatorState.Active://處理激活狀態內容break;case PositionalLocatorState.Activating:case PositionalLocatorState.Inhibited:case PositionalLocatorState.OrientationOnly:case PositionalLocatorState.Unavailable:default:// 攝像機當前只有旋轉增量變化break;}
}

?

處理追蹤狀態變化事件?Handling the OnPositionalLocatorStateChanged event

?

此外更便利的方法是訂閱狀態追蹤的OnPositionalLocatorStateChanged事件來處理:

?

void Start()
{UnityEngine.VR.WSA.WorldManager.OnPositionalLocatorStateChanged += WorldManager_OnPositionalLocatorStateChanged;
}private void WorldManager_OnPositionalLocatorStateChanged(PositionalLocatorState oldState, PositionalLocatorState newState)
{if (newState == PositionalLocatorState.Active){// 處理即將進入追蹤恢復時場景內容
    }else{// 處理即將進入狀態丟失時場景內容
    }
}

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260572.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260572.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260572.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

運維學python用不上_不會Python開發的運維終將被淘汰?

簡介 Python 語言是一種面向對象、直譯式計算機程序設計語言,由 Guido van Rossum 于 1989 年底發明。Python 語法簡捷而清晰,具有豐富和強大的類庫,具有可擴展性和可嵌入性,是現代比較流行的語言。最流行的語言 IEEE Spectrum 的…

windows驅動開發詳解學習筆記

1. windows驅動分兩類,NT式驅動和WDM驅動,后者支持即插即用; 2. DriverEntry是入口函數,傳入參數:pDriverObject由IO管理器傳入; 3. WDM驅動中,AddDevice創建設備對象,由PnP管理器調…

第5章 Python 數字圖像處理(DIP) - 圖像復原與重建15 - 最小均方誤差(維納)濾波

標題最小均方誤差(維納)濾波最小均方誤差(維納)濾波 目標是求未污染圖像fff的一個估計f^\hat{f}f^?,使它們之間的均方誤差最小。 e2E{(f?f^)2}(5.80)e^2 E \big\{(f - \hat{f})^2 \big\} \tag{5.80}e2E{(f?f^?)2…

入網許可證_入網許可證怎么辦理,申請流程

移動通信系統及終端投資項目核準的若干規定》的出臺,打開了更多企業進入手機業的大門,然而一些企業在關心拿到手機牌照后,是不是就是意味了拿到入網許可證,就可以上市銷售。某些廠商認為:"手機牌照實行核準制,意味…

OpenGL編程低級錯誤范例手冊

看到一篇OpenGL編程的錯誤總結,對我初學來說應該比較有用,先保留,嘿嘿... 謝謝原文作者的貢獻:http://www.cnitblog.com/linghuye/archive/2005/08/13/1845.html 1.沒有glDisable(GL_TEXTURE_2D),導致基本幾何作圖全部失敗。 2.鏡…

C/C++ 中變量的聲明、定義、初始化的區別

今天突然思考到這樣的一個問題,發現已經在學習或者編寫程序的時候壓根就沒有注意到這些,經過比較這些還是有很大的區別的。 int i;//聲明 不分配地址空間 int j1;//轉載于:https://www.cnblogs.com/kuoyan/p/3687391.html

使用python matplotlib畫圖

本文的原文連接是: http://blog.csdn.net/freewebsys/article/details/52577631 未經博主允許不得轉載。 博主地址是:http://blog.csdn.net/freewebsys 1,關于 非常簡單的畫圖類庫。 簡直就是matlab的命令了。 python設計都是非常簡單的。 在使用pyt…

碧桂園博智林機器人總部大樓_碧桂園職院新規劃曝光!將建機器人實訓大樓、新宿舍、水幕電影等...

4月10日,廣東碧桂園職業學院召開院務(擴大)會議,學院黨政班子領導和相關負責人出席。會議集中觀看了學院四期工程的規劃區介紹,并就具體方案的可行性進行了研討。在碧桂園集團董事局主席楊國強先生的帶領下,碧桂園職院正緊隨集團產…

第5章 Python 數字圖像處理(DIP) - 圖像復原與重建16 - 約束最小二乘方濾波、幾何均值濾波

標題約束最小二乘方濾波幾何均值濾波約束最小二乘方濾波 F^(u,v)[H?(u,v)∣H(u,v)∣2γ∣P(u,v)∣2]G(u,v)(5.89)\hat{F}(u,v) \bigg[\frac{H^*(u,v)}{|H(u,v)|^2 \gamma |P(u,v)|^2} \bigg]G(u,v) \tag{5.89}F^(u,v)[∣H(u,v)∣2γ∣P(u,v)∣2H?(u,v)?]G(u,v)(5.89) P(u,…

securecrt是什么工具_比較一下幾款常用的SSH工具

WX眾號:基因學苑Q群:32798724更多精彩內容等你發掘!編者按工欲善其事,必先利其器。作為生物信息分析人員,每天都需要通過SSH工具遠程登錄服務器,那么使用一款高效的連接工具就很有必要。這次我們來點評一下…

華為手機如何調時間顯示_華為手機照片如何出現時間地點天氣,教你30秒,一學就會...

閱讀本文前,請您先點擊上面的“藍色字體”,再點擊“關注”,這樣您就可以繼續免費收到文章了。每天都會有分享,都是免費訂閱,請您放心關注。 …

Dreamweaver使用詳解

1:dreamweaver的基本功能,其中各種功能的靈活使用 轉載于:https://www.cnblogs.com/snowhumen/archive/2012/08/01/2618480.html

第5章 Python 數字圖像處理(DIP) - 圖像復原與重建17 - 由投影重建圖像、雷登變換、投影、反投影、反投影重建

標題由投影重建圖像投影和雷登變換 Johann Radon反投影濾波反投影重建由投影重建圖像 本由投影重建圖像,主要是雷登變換與雷登把變換的應用,所以也沒有太多的研究,只為了保持完整性,而添加到這里。 # 自制旋轉投影圖像# 模擬一個…

NFC

NFC近場通信技術是由非接觸式射頻識別(RFID)及互聯互通技術整合演變而來,在單一芯片上結合感應式讀卡器、感應式卡片和點對點的功能,能在短距離內與兼容設備進行識別和數據交換。 場通信是一種短距高頻的無線電技術,在…

day12-nginx

nginx 前臺服務器并發大 安裝nginx useradd –s /sbin/nologin nginx tar xf nginx-xxx.tar.gz yum install –y gcc pcre-devel openssl-devel ./configure --prefix/etc/nginx --usernginx --groupnginx --with-http_ssl_module --http-log-path/var/log/nginx/access.…

python args_Python可變參數*args和**kwargs用法實例小結

本文實例講述了Python可變參數*args和**kwargs用法。分享給大家供大家參考,具體如下: 一句話簡單概括:當函數的參數不確定的時候就需要用到*args和**kwargs,前者和后者的區別在于,后者引入了”可變”key的概念&#xf…

文件組備份還原

-- 參考 USE master; GO-- 測試的DB CREATE DATABASE DB_Test ON PRIMARY(NAME DB_Test,FILENAME C:\DB_Test.mdf ), FILEGROUP FG1 (NAME DB_Test_FG1,FILENAME C:\DB_Test_fg1.ndf ), FILEGROUP FG2 (NAME DB_Test_FG2,FILENAME C:\DB_Test_fg2.ndf ) LOG ON(NAME DB_…

php調用c++

1.在/var/www中建個測試文件夾 cpp 在此文件夾中新建c文件sort.cpp,如下 編譯并測試執行通過進行以下步驟。 2.在cpp文件夾下新建文件cpp.html,如下 3.同樣在cpp下建php文件cpp.php,如下 保存。 4.程序執行如下 提交后: 轉載于:ht…

AI+無線通信——Top7 (Baseline)分享與總結

從浩哥那里轉載 https://wanghao.blog.csdn.net/article/details/115813954 比賽已經告一段落,現在我們隊兌現承諾,將比賽方案開源給大家,互勉互助,共同進步。 隊伍介紹 我們的隊伍名是Baseline,我們因分享Baseline…

拼字符串成為時間,和兩個計算時間點的中間值

拼字符串成為時間,和兩個計算時間點的中間值 select convert(datetime,2016-09-18 SUBSTRING(CONVERT(varchar(100),d_bdate, 24), 0, 9),21) from B2C_daima where d_noB04 select case when Datename(hour,d_edate)> Datename(hour,d_bdate) then convert(dat…