點選以放置 — MRTK3

點選到 Place 是一個求解器,用來在場景表面放置遊戲物件,以重建 (使用者周圍的環境) 網格。 點選到 [放置] 會使用兩個選取專案的組合和頭部移動來放置物件。 您可以使用單一選取專案開始放置、使用頭部移動來控制物件的位置,並使用另一個選取動作將物件放在場景中。

如何使用

  1. 設定場景。

    • 建立新的 Unity 場景。
    • 將 Cube 新增至場景、將縮放比例變更為 0.2,並將位置變更為 (0、0、0.7) 。
  2. 將點選附加至具有碰撞器的遊戲物件。

    • 新增 [點選到放置] 元件時,也會附加規劃求解處理常式。 點選至 Place 衍生自 規劃求解 類別,需要規劃求解處理常式。 Tap to Place 物件的位置是相對於規劃求解處理常式內的 計算 TrackedTargetType 。 根據預設,Head 是 TrackedTargetType ,也就是當頭部移動時,如果選取物件,則會遵循物件。 TrackedTargetType也可以設定為 Controller Ray,其物件會遵循控制器。 點選到位置偵測器中的第一組屬性是 一般規劃求解屬性

    重要

    點選到地點是獨立的規劃求解,無法與其他求解器鏈結。 它無法鏈結,因為 SolverHandler.UpdateSolvers 用來在放置物件時更新物件的位置。

    • 點選以放置屬性:
      • Auto Start:如果為 true,點選到放置規劃求解會開始控制要放置的遊戲物件位置。 物件會緊接在 TrackedTargetType (Head 或 Controller Ray) 之後開始。 叫用 Start () 之前,必須先修改此值,才能有任何作用。
      • Default Placement Distance:) 物件相對於 SolverHandler 中的 TrackedTargetType 向前放置,以公尺為單位的預設距離 (。 如果 raycast 未點擊表面,遊戲物件將會置於預設放置距離。
      • Max Raycast Distance:根據 'TrackedTargetType' 原點,光線廣播的最大距離 (公尺) 。 此光線廣播會尋找表面來放置選取的物件。
      • UseDefaultSurfaceNormalOffset:此屬性預設為 true。 它可確保放置的物件會對齊表面。 如果此屬性為 true,則會套用預設表面標準位移,而不是針對 SurfaceNormalOffset 屬性指定的任何值。 如果為 false,將會套用 的 SurfaceNormalOffset 值。 預設表面標準位移是沿著 Z 軸的碰撞器延伸。
      • Surface Normal Offset:如果光線廣播到達表面,遊戲物件的中心與表面沿著表面正常放置的距離。 此屬性只有在 為 false 時 UseDefaultSurfaceNormalOffset 才會套用至物件。
      • Keep Orientation Vertical:如果為 true,要放置的遊戲物件會保持直立,並符合 Vector3.up。
      • Rotate According to Surface:如果為 false,要放置的遊戲物件將不會根據表面點擊變更其旋轉。 當 IsBeingPlaced 為 true 時,物件將會面對相機。
      • Magnetic Surfaces:要從最高優先順序到最低優先順序執行的 LayerMasks 陣列。 提供光線廣播點擊的第一層遮罩將用於位置計算。
      • Debug Enabled:如果為 true 且在 Unity 編輯器中,則光線廣播點擊的一般會以黃色繪製。 啟用偵錯的時機 RotateAccordingToSurface 很實用,因為它會繪製表面點擊的一般,以視覺化方式說明物件目前的方向設定的原因。
      • On Placing Started:選取要放置的遊戲物件時,就會觸發此事件一次。
      • On Placing Stopped:當要放置的遊戲物件未選取、放置時,就會觸發此事件一次。
  3. 測試點選以在編輯器中放置行為

    • 按播放並按住空格鍵以顯示輸入模擬手。
    • 移動手部,直到立方體處於焦點,並透過按一下滑鼠左鍵來模擬輸入模擬手部的點選。
      • 如果場景中沒有碰撞器,物件將會遵循 TrackedTargetType 定義的 Default Placement Distance
    • 物件會遵循選取之後的 TrackedTargetType 移動。 若要模擬編輯器中的頭部移動,請按 WASD 鍵。 按一下滑鼠右鍵並按住滑鼠右鍵來變更頭部旋轉。
    • 若要停止放置物件,請再按一下一次。 物件不需要成為停止放置點選的焦點。 只有啟動放置程式的初始按一下才需要焦點。