共用方式為


世界鎖定物理範例。

物理束範例提供由世界鎖定工具的世界鎖定座標系統啟用的一些虛擬物理體驗。

上一頁

在 HoloLens 上,由於傳入感測器數據,或甚至重新處理現有數據,空間錨點與前端或其他空間錨點之間的關聯性隨時可能會變更。

Unity 的空間錨點會藉由拖曳附加的 GameObject 和它來響應基礎空間錨點姿勢的變化。 此動作會造成物理仿真的困難:

  • 因為空間錨定 GameObject 的姿勢是由空間錨點每個畫面明確設定,所以無法透過模擬來設定它(例如動量)。
  • 由於空間錨點經常更新其 GameObject 的姿勢,因此它似乎不會與其他仍然僵硬的主體相對待用。
  • 由於 Unity 座標系統的隱含移位,因為空間錨點會調整靜態 全像投影 的座標,使其相對於真實世界保持固定,因此路線和軌跡等物理計算將會關閉。 例如,如果全像投影是由其空間錨點在軌跡計算和到達目標之間重新置放,則完全針對全像投影的投影仍然會遺失。

當測量的空間錨點與其鎖定的可見虛擬對象之間的關聯性變得不一致時,不如 Unity 的空間錨點調整虛擬物件,世界鎖定工具會調整頭部轉換,以將這些不一致產生的成品降到最低。 這可讓虛擬物件在穩定的座標空間中顯示一致,並排除上述問題。

建置範例

此範例需要 SpatialPerception 功能。 語音命令也需要麥克風功能。

此範例會要求將下列層次新增至專案的標籤和層次:

  • 柱 撐
  • SpatialMapping

執行示範

控件 HUD

這個基本 HUD 並不適用於此物理束範例,但只允許運行時間控制世界鎖定工具的行為來探索其功能。 它可作為任何使用世界鎖定工具之應用程式開發的下拉式清單,如世界鎖定工具 的初始設定中所述。

範例 HUD 的螢幕快照

診斷統計數據 預設會顯示,但可以從控件 HUD 停用。

模式單選按鈕

在任何指定時間,範例都可以在下列任一模式中:

  • 閑置 - 物理範例目前未處理輸入。 當然,HUD 和單選按鈕功能表會繼續處理輸入。

  • 擲回達特 - 根據基本物理規律計算軌跡,並顯示。 顯示的弧線會顯示投射專案所引發的路徑(透過選取手勢)將遵循。 投擲的飛鏢將遵循彈道導彈軌跡,從任何碰撞表面彈跳,包括空間重建(SR)網格,它撞擊。

    這些達特是「抽取式」,如下所述。

  • 新增柱子 - 在選取手勢上,光線會以指示的方向轉換成世界。 如果它找到可碰撞的表面,就會將垂直柱子新增至該處的場景。

    每個新增的柱子都是可碰撞的,而且可作為梁支援,如下所述。 不過,新增了兩種支柱:

    • 如果柱子設定在「卸除式」表面,則柱子會實際模擬(例如,可以敲倒)。
    • 否則柱子相撞,但靜態。

    實際上,此規則表示如果在 SR 網格上加入柱子,則為靜態,但否則會是動態的。

    柱子是「抽取式」。

  • 新增梁 - 在第一次選取時,光線會轉換成場景,以尋找梁的第一個端點。 之後,當選取光線經過場景時,會從第一個端點繪製到目前端點的線條。 第二個選取手勢會建立第一個端點與目前端點之間的梁伸展。

    平衡 Beam 與柱子上的端點顯然需要一個空間,端點柱形會彼此保持固定。

    梁是「可移動的」。。

  • 拿掉物件 - 在選取時,如果光線轉換物件為 “removable”,則會從場景中移除它。 拿掉物件所支援的任何物件都會落下。