練習 - 使用求解器建立智慧型物件放置
求解器是混合實境工具組 (MRTK) 的其中一個元件。 讓我們看看兩種類型的求解器及其各自的功能。
MRTK 中求解器的位置
MRTK 的求解器位於 MRTK SDK 資料夾中。 若要查看專案中可用的求解器,請在 [專案] 視窗中,移至 [套件]>[MRTK 空間操作]>[求解器]。
方向性指標求解器
使用方向性指標求解器將使用者導向至物件。 方式如下:
在 [專案] 視窗中,瀏覽至 [資產]> [MRTK.Tutorials.GettingStarted]>[預製物件]。 將 Chevron 預製專案拖曳到 [ 階層 ] 視窗中,並將其 [轉換 位置 ] 設定為 X = 0、Y = 1.5、Z = 2 以將它放置在 RoverExplorer 物件附近。
將新加入的 Chevron 物件重新命名為 Indicator。 然後,在 [ 偵測器] 視窗中,選取 [ 新增元件 ] 以新增 DirectionalIndicator。
設定 DirectionalIndicator 和 SolverHandler 元件,如下所示:
一。 確認 SolverHandler 元件的 追蹤目標類型 已設定為 Head。
b。 藉由將其從 [階層] 拖曳至 [無 (轉換)] 欄位,將 RoverExplorer 指派至 DirectionalIndicator 元件的 [方向目標]。
c. 將 檢視位移 變更為 0.2。
若要進入 [遊戲] 模式,請按下 [開始遊戲]。 在向左或向右移動滑鼠時,按住滑鼠右鍵來旋轉您的注視方向。
請注意,當您遠離 RoverExplorer 物件時, Indicator 物件會出現並指向 RoverExplorer 物件。
點選放置求解器
使用點選放置求解器來重新置放物件。 方式如下:
在 [階層] 視窗中,選取 [RoverExplorer] > [RoverAssembly] 物件。 然後在 [偵測器] 中,使用 [新增元件] 來新增 [點選放置] 元件。 設定元件,如下所示:
一。 確認 SolverHandler 元件的 追蹤目標類型 已設定為 Head。
b。 取消核取 [使用預設表面一般位移],並且確定 [表面一般位移] 設定為 0。
c. 選取 [保持垂直方向] 核取方塊。
接下來,使用 [新增元件 ] 來新增 可設定狀態的互動 元件。 在 [偵測器] 視窗中,找出 [On Clicked ()] 事件。 選取 + 圖示以新增新事件。 設定事件,如下所示:
一。 將 RoverAssembly 物件從 階層 拖曳到 無 (物件) 字段,並指派其為 On Clicked () 事件的偵聽器。
b。 從 [沒有函式] 下拉式清單中選取 [TapToPlace]>[StartPlacement()],即可在事件觸發時呼叫此方法。
在 [階層] 視窗中仍選取 RoverAssembly 物件之後,在 [偵測器] 視窗中,找出 [On Placing Started ()] 事件。 選取 + 圖示以新增新事件。
設定事件,如下所示:
一。 將 RoverAssembly 物件指派為 On Placing Started () 事件的接聽程式,方法是將它從 階層 拖曳至 無 (物件) 字段。
b。 從 [ 無函式 ] 下拉式清單中,選取 TapToPlace>float SurfaceNormalOffset ,以在觸發事件時更新 SurfaceNormalOffset 屬性值。
c. 確認自變數設定為 0。
在 [階層] 中,以滑鼠右鍵按兩下空白位置。 選取 [3D 物件]>[Cube],以建立代表地面的暫存物件,並設定 [Transform] 元件,如下所示:
- 位置:X = 0、Y = 0.15、Z = 6
- 旋轉:X = 0、Y = 0、Z = 0
- 縮放:X = 10、Y = 0.2、Z = 10
若要進入 遊戲 模式,請按 [播放],然後在滑鼠向下移動滑鼠時按住滑鼠右鍵,直到注視擊中 RoverAssembly 物件為止。
按住空格鍵並按一下滑鼠左鍵以執行空中點選,然後啟動點選放置程序。
在向左或向右移動滑鼠時,按住滑鼠右鍵來旋轉您的注視方向。 當您滿意放置時,請按住空格鍵並按一下滑鼠左鍵以結束空中點選。
當您在 遊戲 模式中測試功能時,以滑鼠右鍵按下 Cube 物件,然後選取 [ 刪除 ] 將其從場景中移除。












