點選到位置 — MRTK3

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

如何使用

  1. 設定場景。

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

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

    重要

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

    • 點選以放置屬性:
      • Auto Start:如果為 true,點選到 Place 規劃求解就會開始控制要放置的遊戲物件位置。 物件會緊接在 TrackedTargetType (Head 或 Controller Ray) 之後開始。 在叫用 Start () 之前,必須先修改此值,才能有任何作用。
      • Default Placement Distance:預設距離 (以公尺為單位,) 物件會相對於 SolverHandler 中的 TrackedTargetType 向前放置。 如果光線傳播未到達表面,遊戲物件將會置於預設放置距離。
      • 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:要從最高優先順序到最低優先順序執行的 LayerMask 陣列。 提供光線廣播點擊的第一層遮罩將用於位置計算。
      • Debug Enabled:如果為 true,且在 Unity 編輯器中,光線廣播點擊的一般會以黃色繪製。 啟用偵錯的時機 RotateAccordingToSurface 很實用,因為它會繪製表面點擊的一般,以視覺化方式說明物件目前的方向設定的原因。
      • On Placing Started:選取要放置的遊戲物件時,就會觸發此事件一次。
      • On Placing Stopped:當要放置的遊戲物件未選取、放置時,就會觸發此事件一次。
  3. 測試點選以在編輯器中放置行為

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