1:5月10號hololens正式在中國開放購買了。
2:HoloToolkit-Unity是一個集合在github上的一系列的用于hololens快速開發(fā)的工具。
3:這個工具在github工具這里開放下載,以下簡稱holokit喂急。
?Cursor:光標菩咨,游標,類似于pc端的鼠標俱箱,在holokit中它包含了很多的種類
? ? ? ? ? ? ? DefaultCursor一個基本的光標 ,類似于hololens界面中的光標灭必,一般是白色的圈狞谱,點擊的時候是一個白點,自帶燈光和動畫禁漓,分為三種狀態(tài) 激活狀態(tài)跟衅,禁用狀態(tài),取消狀態(tài)播歼。
? ? ? ? ? ? ? Cursor ? 他是集成在holokit中的光標伶跷,他集成了Cursor類中的四種不同的光標狀態(tài)。
? ? ? ? ? ? ? BasicCursor 是集成在holokit中最基本的光標秘狞,他是藍色的叭莫。
? ? ? ? ? ? CursorWithFeedback 一個自帶反饋的光標,也就是說他可以反饋當前物體的各種狀態(tài)烁试,例如旋轉狀態(tài)的時候是一個旋轉的光標雇初。
FPSDisplay:是一個反饋當前場景的FPS值的預制體。
HoloLensCamera:一個已經(jīng)集成好的hololens相機减响,這個相機自帶一個用于控制鏡頭運動的腳本靖诗,下面是相機的設置。
inputManager:是一個集成了凝視支示,手勢輸入刊橘,穩(wěn)定相機抖動,手勢管理的預制體颂鸿。
LIght:是一個集成了通用環(huán)境下的hololens適用的燈光系統(tǒng)促绵。
RemoteMapping:移除地圖,這里的地圖是形成的空間模型地圖他自帶四個腳本
? ? ? ? ? RemoteMeshTarget ? ?移除網(wǎng)格目標
? ? ? ? ? ?RemoteMeshSource ? 移除網(wǎng)格源
? ? ? ? ? RemoteMappingManager 移除空間模型管理器 (在hololens中,所有的主要功能都是有一個Manager管理腳本來管理的)
? ? ? ? ? FileSurfaceObserver ? 一個用于保存掃描完空間模型的腳本
Sharing:用于快速集成共享全息圖绞愚。
SpatialMapping :一個用于快速掃描房間的預制叙甸,他自帶三個腳本
? ? ? SpatialMappingObserver ?實現(xiàn)掃描房間的具體信息
? ? ? SpatialMappingManager ? ?一個掃描的管理類
? ? ? ObjectSurfaceObserver ? ?用以加載已經(jīng)掃描過的房間模型(具體的信息請參考hololensHome用法)
SpatialUnderstanding 一個掃描的預制 ?它自帶三個腳本
SurfacePlane 一個實現(xiàn)快速放置物體的預制 他可以實現(xiàn)物體的放置功能 他需要搭配空間掃描
? ? ? ?SurfacePlane ?用以實現(xiàn)上述預制的一個方法 你可以參考他的參數(shù) 但他具體的信息會在后面講到。
UITextPrefab 一個快速集成畫布的預制 關于他的設置如下
3DTextPrefab 一個快速集成了文字的預制 關于他更加詳細的設置參考如下
HeadsUpDirectionIndicatorPointerNegativeX ?(Y Z)一個箭頭指示器
網(wǎng)絡測試(network)Player位衩,NetBullet 裆蒸, AnchorManager(錨點管理,很重要的一個東西)
SceneManager 一個場景管理器
Button ? 一個按鈕(后面會詳細的講到)
FocusedObjectKeywordManager 一個快速集成語音輸入的預制(在語音會講到)
HeadsUpDirectionIndicator ?一個方向指示器
5:腳本
? ? ?這里我們主要說一些很主要的腳本的用法和習慣以及通用的一些輔助腳本的用法糖驴。
? ? 那么一個基本的Hierarchy是這樣的(主要腳本)僚祷。
Camera:hololens中的相機是你的視野,雖然他的視野很小贮缕,但是在最優(yōu)的情況下提供了假全息圖的視野實現(xiàn)辙谜,官方推薦near的值為0.85,瞳距為0.07(這個值可能有問題感昼,但是一般不用設置装哆,除非你有眩暈的感覺),他自帶了一個腳本是ManualGazeControl(用于控制相機)
Cursor:光標或者游標定嗓,他在holokit中是集成自Cursor這個類的蜕琴,如果你想重寫你得光標,讓它絢麗多彩宵溅,你可以重寫這個類凌简,但是在一般的情況下,你需要另外一個光標的反饋類恃逻,來表現(xiàn)你光標的狀態(tài)雏搂。
InputManager:輸入管理的類,下面解析他里面腳本的用法寇损,首先是
? ? ? GazeManager:他的作用是凝視的經(jīng)理管理著與其他物體相互作用的凝視光線凸郑。在這個類中,
? ? ? ? ? Singleton是一個全局管理的單例润绵,如果你在holok上快速開發(fā)你的項目线椰,這是一個很好的捷徑,他已經(jīng)規(guī)避了很多的風險尘盼,但是還是要謹慎的使用憨愉。IsGazingAtObject是一個bool值,你可以通過判斷這個值的true或者false來決定當前是否凝視在某個物體上卿捎。HitInfo 是公用的射線配紫,這是一個很重要的屬性,通過外部用RaycastHit m_ray = hitInfo;這種方式來鏈接這個射線午阵。HitObject這是當前凝視的對象躺孝,你可以判斷這個值是否為null來做一些很必要的操作享扔。HitPosition凝視的位置。GazeOrigin凝視的來源植袍。GazeNormal正常凝視的時候惧眠。MaxGazeCollisionDistance凝視與物體接觸的最大距離,這個值是10于个,再大的值沒有經(jīng)過測量氛魁。RaycastLayerMasks層?Yes厅篓,No()=>Yes秀存。Stabilizer當前一個固定的方法(A),用于消除凝視射線產(chǎn)生的數(shù)據(jù) 這個方法其實是手勢的處理羽氮。如果這里不做處理或链,就不會根據(jù)碰撞或者觸發(fā)來判斷,如果當前是離開的話档押,就不會執(zhí)行這個A方法澳盐。GazeTransform當前凝視的來源和位置,默認是相機發(fā)出來的汇荐。FocusedObjectChanged當焦點一直處于某個對象或者更換了對象之后洞就。raycastResultList一個射線的集合。UnityUIPointerEvent UI指針事件掀淘,如果你沒有調用他,it isNull油昂;在他的實現(xiàn)方法中革娄,所有的凝視都是實時更新的,而且要處理UI層冕碟,以及當前凝視物體的狀態(tài)和物體的更新拦惋。
? ? ?GazeStabilizer :一個穩(wěn)固凝視放置光標抖動的類。他的功能大概就是如此安寺。
? ? InputManager? :輸入管理類厕妖,輸入管理器負責管理輸入源并調度相關事件以及手勢的處理。
? ? ? ? IsInputEnabled當前用戶時候輸入了挑庶。ShouldSendUnityUiEventsUI是否觸發(fā)言秸。
? ?RawInteractionSourcesInput :輸入源交互,比如手勢識別器迎捺?輸入源檢測举畸,但是這個輸入源和HoloLens的輸入源是不一樣的。
GesturesInput:手勢輸入凳枝,一個包裝過的手勢識別器抄沮,他里面包含了你盡可能多的手勢,單擊,雙擊叛买,旋轉砂代,保持,移動率挣,wins基本操作手勢刻伊,導航手勢,這個識別是自動開始識別的难礼,也可以不是娃圆,不是嗎。
SpatialMapping:空間掃描最重要的一個集成工具蛾茉。
? ? ? ? SpatialMappingObserver讼呢,Time Between Update更新時間(掃描更新的事件,)Triangles Per Cubic Mater每個面上的數(shù)量(三角形)谦炬。
? ? ? ? SpatialMappingManager ?Physics物理層悦屏?31 (Y),surface Material掃描出來的表面材質键思。(在holokit中础爬,wireframe是黑色白底的,occlusion是透明的材質)Auto start Observer是否自動開始識別吼鳞,Draw Visual Meshes是否畫線看蚜,Cast Shadows是否接受陰影。你可以調用其中的參數(shù)實現(xiàn)一些基本的控制赔桌。
? ? ? Object Surface Observer 個人覺得這是一個雞肋的功能供炎,但是他是有很大的作用的。這個將在后面實際的項目中說道疾党。Room Model 是房間模型了音诫。
RemoteMapping :移除地圖
? ? Remote Mesh Target 。
? ? Remote Mesh Source雪位。
? ? Remote ?Mapping ? Manager竭钝。
? ? File Surface? observer? mesh fileName 是你掃描之后要保存的房間的名字。你可以調用L和S兩個按鈕來實現(xiàn)在HoloLens中的掃描雹洗。這個掃描是比較精確的香罐。Open File Location 打開你掃描完的房間模型的位置。我的是這樣的C:\Users\用戶名\AppData\LocalLow\公司名稱\項目名稱
Sharing :分享队伟。一般用于共享全息圖穴吹,這在共享全息圖會說道。
HeadsUpDirectionIndicator: 一個指針嗜侮「哿睿可以只想你目標的方向啥容,
? ? ? ?Target Object 目標
? ? ? ?depth 深度
? ? ? ?Pivot 指向目標點的偏移量
? ? ? pointer Prefab ?指針模型
SurfacePlane :是識別表面物體的。也就是識別你的空間的
?在這個腳本中顷霹,你可以看到你要是別的墻咪惠,桌子,地面淋淀,屋頂?shù)牟馁|葵袭。
SurfaceMeshesToPlanes :將識別之后的空間中的模型什么的轉化為材質镰踏。這個在家具安裝項目中會實際說道。
6:寫在最后
? holokit的作用就是減少開發(fā)的周期,他很好的封裝了一般開發(fā)所需要的所有的功能锯厢,這很好的符合了hololens開發(fā)的十大建議中的最后一條擂煞,避免長周期的開發(fā)浆兰。
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者