1. 程式人生 > >hololens自帶例程

hololens自帶例程

HoloToolkit-Unity-v1.5.7.0自帶了一系列例程HoloToolkit-Unity-Tests-v1.5.7.0。 
作者剛開始的時候沒有注意到,使用網上低版本的教程學了半天,到新版本又是一頭懵逼。 
因此總結一下這些例程。 
學會使用這些例程對入門有幫助的多,也免得網路上四處尋找資料。 
HoloToolkit例程分為 
1)Input 
2)Sharing 
3)SpatialMapping 
4)SpatialSound 
5)Utilities 
總共五個型別,本文只介紹Input和SpatialMapping中的TapToPlace,因為作者目前也只用到這兩類。順帶介紹Utilities裡面的一些檔案。 
第一部分:Input 
1、BasicCursor:實現一個簡單的滑鼠效果。也是最基礎的專案。 
圖1.1.1

 
圖1.1.1 
2、Cursor:實現凝視物件跟沒有凝視物件的時候不同的滑鼠效果。 
凝視物件的時候,效果如圖1.1.1,沒有凝視的時候,效果如圖1.2.1: 
圖1.2.1 
圖1.2.1 
3、CursorWithFeedback:在識別到手的時候,滑鼠顯示為“手”狀 
圖1.3.1 
圖1.3.1 
4、FocusedObjectKeywords:語音控制目標放大縮小 
5、GazeEvents凝視左球時,右邊的球消失,凝視右邊的球時,光線變暗。 
這裡寫圖片描述
圖1.5.1 
6、InputManagerTest設定了凝視與一些UI效果的互動 
這裡寫圖片描述

圖1.6.1 
左側視窗為彈窗示例,點選圓柱體,則會彈出四個按鈕,點選空白後消失。 
這裡寫圖片描述 
圖1.6.2 
中間視窗分為三個部分,wait按鈕點選後,會呈現一個進度顯示 
這裡寫圖片描述 
圖1.6.3 
wait右邊三個按鈕在滑鼠經過的時候會變大。 
下面的Popup按鈕點選後會出現一個彈窗,同時在彈窗出現期間,其他功能不可用。 
這裡寫圖片描述 
圖1.6.4 
右邊面板展示滑鼠在三維物體表面時,會跟隨表面曲面投影。如圖,滑鼠在斜面上也隨之斜角。 
這裡寫圖片描述 
圖1.6.5 
下邊面板的sphere與cube可以拖動。\ 
7、InputTapTest展示了凝視與非凝視狀態不同滑鼠效果,以及點選後目標變大的效果。 
這裡寫圖片描述
 
圖1.7.1 
8、InteractiveMeshCursor展示了滑鼠的不同狀態,針對不同狀態,顯示三種不同的滑鼠,點狀、圓環狀、放大圓環狀。 
這裡寫圖片描述 
圖1.8.1 
滑鼠的狀態包括:

       public enum CursorStateEnum
        {
            /// <summary>
            /// Useful for releasing external override.
            /// See <c>CursorStateEnum.Contextual</c>
            /// </summary>
            None = -1,
            /// <summary>
            /// Not IsHandVisible
            /// </summary>
            Observe,
            /// <summary>
            /// Not IsHandVisible AND not IsInputSourceDown AND TargetedObject exists
            /// </summary>
            ObserveHover,
            /// <summary>
            /// IsHandVisible AND not IsInputSourceDown AND TargetedObject is NULL
            /// </summary>
            Interact,
            /// <summary>
            /// IsHandVisible AND not IsInputSourceDown AND TargetedObject exists
            /// </summary>
            InteractHover,
            /// <summary>
            /// IsHandVisible AND IsInputSourceDown
            /// </summary>
            Select,
            /// <summary>
            /// Available for use by classes that extend Cursor.
            /// No logic for setting Release state exists in the base Cursor class.
            /// </summary>
            Release,
            /// <summary>
            /// Allows for external override
            /// </summary>
            Contextual
        }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

9、KeywordManager在按鍵R、G、B或者語音說Red、Green、Blue的時候回改變球體成為對應顏色。 
這裡寫圖片描述 
圖1.9.1 
10、ManualCameraControl展示了手勢別滑鼠,在識別到手的時候,滑鼠會變成手狀 
11、MicrophoneStream由立方體發出立體聲,通過wasQ四個鍵控制聲音的停止播放、開始錄製、儲存、開始播放。 
12、OverrideFocusedObjectTest初始顯示HelloWorld,在凝視點選後變成Air tap worked and OverrideFocusedObject is null. 
這裡寫圖片描述 
圖1.12.1 
13、SelectedObjectKeywords開局自動產生指定數量的物體,如本例為3*3網格佈置的物體,物體在語音給出指令的時候改變狀態,分別為 
Clear Selection,取消選擇狀態 
Make Bigger,物體變大 
Select Object,選擇物體,物體變成指定顏色,本例為紅色 
Make Smaller,物體變小。 
這裡寫圖片描述 
圖1.13.1 
14、SpeechInputSource通過語音Red、Green、Blue控制凝視物件顏色。 
這裡寫圖片描述
第二部分 
1、TapToPlace,實現空間識別,並且通過點選手動放置cube在空間合適的平面位置。