在Hololens手勢識別與輸入源當中,我們一共會遇到或者說要用到的三個方面知識,第一個是【Gaze:游標指示】【Gesture:手勢輸入】【InteractionManager:輸入源控制器】
下面我們一一來說說這三個內容。
Gaze:游標指示
在PC,移動平臺,XBox其他平臺,我們都能看到有游標,手指觸控,遙控手柄等一系列讓我們熟悉的輸入設備,而在Hololes設備里面,我們突然之間離開了這些熟悉的輸入設備,轉而使用了手勢,而且是
隔空的手勢,就是在設備前面做一個手勢動作就能被Hololes設備捕捉到,這樣的輸入是不是有點讓人飄飄然,然而,輸出也變得不可思議,Hololens設備能融合環境,在你的視覺當中呈現出一塊大銀屏,在銀
屏當中現實我們應用上的畫面,突然讓我有一種——十幾年前,哪些看過的科技大片已經躍然我們現實當中了。
Gaze這個就是用來做PC平臺下游標的內容,我們通過轉動設備來看向目標鎖定目標,然后反饋給設備我們當前看向的目標,然后結合后面的手勢識別或者輸入源控制器進行一系列的邏輯控制,這就好比我
們使用滑鼠和滑鼠左鍵右鍵一樣,我們先要把游標移動到我們想要控制的區域內,然后點擊滑鼠左鍵觸發操作,點擊滑鼠右鍵控制等等。
在Gaze當中,我們主要判斷了目標鎖定和目標丟失,它主要的功能也就是去做這個事情的。
Gesture:手勢輸入
前面我們提到過游標和滑鼠左鍵右鍵,可以這樣理解,Gaze就是游標,而Gesture就是我們的滑鼠左鍵和右鍵了,我們可以通過注冊事件來監聽手勢輸入的一些事情
public event GestureErrorDelegate GestureErrorEvent;【輸入例外】
public event HoldCanceledEventDelegate HoldCanceledEvent;【輸入維持】
public event HoldCompletedEventDelegate HoldCompletedEvent;【輸入維持】
public event HoldStartedEventDelegate HoldStartedEvent;【輸入維持】
【public event ManipulationCanceledEventDelegate ManipulationCanceledEvent;
public event ManipulationCompletedEventDelegate ManipulationCompletedEvent;
public event ManipulationStartedEventDelegate ManipulationStartedEvent;
public event ManipulationUpdatedEventDelegate ManipulationUpdatedEvent;
public event NavigationCanceledEventDelegate NavigationCanceledEvent;
public event NavigationCompletedEventDelegate NavigationCompletedEvent;
public event NavigationStartedEventDelegate NavigationStartedEvent;
public event NavigationUpdatedEventDelegate NavigationUpdatedEvent;】【移動相關】
【public event RecognitionEndedEventDelegate RecognitionEndedEvent;
public event RecognitionStartedEventDelegate RecognitionStartedEvent;】【還不清楚】
public event TappedEventDelegate TappedEvent;【點擊】
這些方法都是存放在
namespace unityEngine.VR.WSA.Input 空間下GestureRecognizer類
它就是用來監聽手勢輸入的,但是上面這些內容并不是我們想要的他都有,比如說手勢按下,手勢彈起,這個是沒有辦法做到的,而唯一比較相似的是Hold這個內容,但是它不是真正的按下/彈起監聽,
而是一種延時的維持,就是說保持一個手勢不變的情況下而產生的一些回呼,所以Gesture提供了手勢輸入方面的內容,但是并不是全部,我們要想達到點下,彈起這種瞬時監控功能的時候,我們還需要借
助另外一個內容【InteractionManager】,這個就是輸入源控制器。
InteractionManager:輸入源控制器
這個控制器里面,就存在點擊/按下/彈起/更新/激活/銷毀方面的回呼,而且它不僅監控手勢,還監控音頻等,下面我們來看看它能監控的事情
public static event SourceEventHandler SourceDetected; 【輸入源激活】
public static event SourceEventHandler SourceLost; 【輸入源丟失】
public static event SourceEventHandler SourcePressed; 【輸入源按下】
public static event SourceEventHandler SourceReleased; 【輸入源彈起】
public static event SourceEventHandler SourceUpdated;【輸入源移動或者狀態變化】
這些方法都是存放在
namespace UnityEngine.VR.WSA.Input 空間下InteractionManager類
我們通過注冊這些事件,通過判斷輸入源,就能做到手勢按下,手勢彈起,手勢變化等一系列的控制了。
下面是我寫的幾個控制類,有興趣的可以研究一下,當然這個只是一個初步的設計,難免會有紕漏或者不合理的地方,還請看客們指出
uj5u.com熱心網友回復:
京東上賣65999,誰玩得起?uj5u.com熱心網友回復:
只能說,普通玩家等待降價,土豪公司提前部署。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/70361.html
標籤:Unity3D
