1:5月10號hololens正式在中國開放購買了。
2:HoloToolkit-Unity是一個集合在github上的一系列的用于hololens快速開發的工具。
3:這個工具在github工具這里開放下載,以下簡稱holokit。
?Cursor:光標,游標,類似于pc端的鼠標,在holokit中它包含了很多的種類
? ? ? ? ? ? ? DefaultCursor一個基本的光標 ,類似于hololens界面中的光標,一般是白色的圈,點擊的時候是一個白點,自帶燈光和動畫,分為三種狀態 激活狀態,禁用狀態,取消狀態。
? ? ? ? ? ? ? Cursor ? 他是集成在holokit中的光標,他集成了Cursor類中的四種不同的光標狀態。
? ? ? ? ? ? ? BasicCursor 是集成在holokit中最基本的光標,他是藍色的。
? ? ? ? ? ? CursorWithFeedback 一個自帶反饋的光標,也就是說他可以反饋當前物體的各種狀態,例如旋轉狀態的時候是一個旋轉的光標。
FPSDisplay:是一個反饋當前場景的FPS值的預制體。
HoloLensCamera:一個已經集成好的hololens相機,這個相機自帶一個用于控制鏡頭運動的腳本,下面是相機的設置。
inputManager:是一個集成了凝視,手勢輸入,穩定相機抖動,手勢管理的預制體。
LIght:是一個集成了通用環境下的hololens適用的燈光系統。
RemoteMapping:移除地圖,這里的地圖是形成的空間模型地圖他自帶四個腳本
? ? ? ? ? RemoteMeshTarget ? ?移除網格目標
? ? ? ? ? ?RemoteMeshSource ? 移除網格源
? ? ? ? ? RemoteMappingManager 移除空間模型管理器 (在hololens中,所有的主要功能都是有一個Manager管理腳本來管理的)
? ? ? ? ? FileSurfaceObserver ? 一個用于保存掃描完空間模型的腳本
Sharing:用于快速集成共享全息圖。
SpatialMapping :一個用于快速掃描房間的預制,他自帶三個腳本
? ? ? SpatialMappingObserver ?實現掃描房間的具體信息
? ? ? SpatialMappingManager ? ?一個掃描的管理類
? ? ? ObjectSurfaceObserver ? ?用以加載已經掃描過的房間模型(具體的信息請參考hololensHome用法)
SpatialUnderstanding 一個掃描的預制 ?它自帶三個腳本
SurfacePlane 一個實現快速放置物體的預制 他可以實現物體的放置功能 他需要搭配空間掃描
? ? ? ?SurfacePlane ?用以實現上述預制的一個方法 你可以參考他的參數 但他具體的信息會在后面講到。
UITextPrefab 一個快速集成畫布的預制 關于他的設置如下
3DTextPrefab 一個快速集成了文字的預制 關于他更加詳細的設置參考如下
HeadsUpDirectionIndicatorPointerNegativeX ?(Y Z)一個箭頭指示器
網絡測試(network)Player,NetBullet , AnchorManager(錨點管理,很重要的一個東西)
SceneManager 一個場景管理器
Button ? 一個按鈕(后面會詳細的講到)
FocusedObjectKeywordManager 一個快速集成語音輸入的預制(在語音會講到)
HeadsUpDirectionIndicator ?一個方向指示器
5:腳本
? ? ?這里我們主要說一些很主要的腳本的用法和習慣以及通用的一些輔助腳本的用法。
? ? 那么一個基本的Hierarchy是這樣的(主要腳本)。
Camera:hololens中的相機是你的視野,雖然他的視野很小,但是在最優的情況下提供了假全息圖的視野實現,官方推薦near的值為0.85,瞳距為0.07(這個值可能有問題,但是一般不用設置,除非你有眩暈的感覺),他自帶了一個腳本是ManualGazeControl(用于控制相機)
Cursor:光標或者游標,他在holokit中是集成自Cursor這個類的,如果你想重寫你得光標,讓它絢麗多彩,你可以重寫這個類,但是在一般的情況下,你需要另外一個光標的反饋類,來表現你光標的狀態。
InputManager:輸入管理的類,下面解析他里面腳本的用法,首先是
? ? ? GazeManager:他的作用是凝視的經理管理著與其他物體相互作用的凝視光線。在這個類中,
? ? ? ? ? Singleton是一個全局管理的單例,如果你在holok上快速開發你的項目,這是一個很好的捷徑,他已經規避了很多的風險,但是還是要謹慎的使用。IsGazingAtObject是一個bool值,你可以通過判斷這個值的true或者false來決定當前是否凝視在某個物體上。HitInfo 是公用的射線,這是一個很重要的屬性,通過外部用RaycastHit m_ray = hitInfo;這種方式來鏈接這個射線。HitObject這是當前凝視的對象,你可以判斷這個值是否為null來做一些很必要的操作。HitPosition凝視的位置。GazeOrigin凝視的來源。GazeNormal正常凝視的時候。MaxGazeCollisionDistance凝視與物體接觸的最大距離,這個值是10,再大的值沒有經過測量。RaycastLayerMasks層?Yes,No()=>Yes。Stabilizer當前一個固定的方法(A),用于消除凝視射線產生的數據 這個方法其實是手勢的處理。如果這里不做處理,就不會根據碰撞或者觸發來判斷,如果當前是離開的話,就不會執行這個A方法。GazeTransform當前凝視的來源和位置,默認是相機發出來的。FocusedObjectChanged當焦點一直處于某個對象或者更換了對象之后。raycastResultList一個射線的集合。UnityUIPointerEvent UI指針事件,如果你沒有調用他,it isNull;在他的實現方法中,所有的凝視都是實時更新的,而且要處理UI層,以及當前凝視物體的狀態和物體的更新。
? ? ?GazeStabilizer :一個穩固凝視放置光標抖動的類。他的功能大概就是如此。
? ? InputManager? :輸入管理類,輸入管理器負責管理輸入源并調度相關事件以及手勢的處理。
? ? ? ? IsInputEnabled當前用戶時候輸入了。ShouldSendUnityUiEventsUI是否觸發。
? ?RawInteractionSourcesInput :輸入源交互,比如手勢識別器?輸入源檢測,但是這個輸入源和HoloLens的輸入源是不一樣的。
GesturesInput:手勢輸入,一個包裝過的手勢識別器,他里面包含了你盡可能多的手勢,單擊,雙擊,旋轉,保持,移動,wins基本操作手勢,導航手勢,這個識別是自動開始識別的,也可以不是,不是嗎。
SpatialMapping:空間掃描最重要的一個集成工具。
? ? ? ? SpatialMappingObserver,Time Between Update更新時間(掃描更新的事件,)Triangles Per Cubic Mater每個面上的數量(三角形)。
? ? ? ? SpatialMappingManager ?Physics物理層?31 (Y),surface Material掃描出來的表面材質。(在holokit中,wireframe是黑色白底的,occlusion是透明的材質)Auto start Observer是否自動開始識別,Draw Visual Meshes是否畫線,Cast Shadows是否接受陰影。你可以調用其中的參數實現一些基本的控制。
? ? ? Object Surface Observer 個人覺得這是一個雞肋的功能,但是他是有很大的作用的。這個將在后面實際的項目中說道。Room Model 是房間模型了。
RemoteMapping :移除地圖
? ? Remote Mesh Target 。
? ? Remote Mesh Source。
? ? Remote ?Mapping ? Manager。
? ? File Surface? observer? mesh fileName 是你掃描之后要保存的房間的名字。你可以調用L和S兩個按鈕來實現在HoloLens中的掃描。這個掃描是比較精確的。Open File Location 打開你掃描完的房間模型的位置。我的是這樣的C:\Users\用戶名\AppData\LocalLow\公司名稱\項目名稱
Sharing :分享。一般用于共享全息圖,這在共享全息圖會說道。
HeadsUpDirectionIndicator: 一個指針??梢灾幌肽隳繕说姆较?,
? ? ? ?Target Object 目標
? ? ? ?depth 深度
? ? ? ?Pivot 指向目標點的偏移量
? ? ? pointer Prefab ?指針模型
SurfacePlane :是識別表面物體的。也就是識別你的空間的
?在這個腳本中,你可以看到你要是別的墻,桌子,地面,屋頂的材質。
SurfaceMeshesToPlanes :將識別之后的空間中的模型什么的轉化為材質。這個在家具安裝項目中會實際說道。
6:寫在最后
? holokit的作用就是減少開發的周期,他很好的封裝了一般開發所需要的所有的功能,這很好的符合了hololens開發的十大建議中的最后一條,避免長周期的開發。
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。