Microsoft Mixed Reality Toolkit 2.5 版本資訊

重要

已知編譯器問題會影響使用 ARM64 為 Microsoft HoloLens 2 建置的應用程式。 此問題是藉由將 Visual Studio 2019 更新至 16.8 版或更新版本來修正。 如果您無法更新 Visual Studio,請匯入 com.microsoft.mixedreality.toolkit.tools 套件以套用因應措施。

2.5.4 的新功能

修正了使用 UPM 時,登入 登入時發生錯誤

使用 UPM 時,AndroidsXRSDKDeviceManagerProfile 一律會在 啟動時將其預製專案設定為 None。 此版本會設定裝置管理員,以指向啟動時的工作預製專案集。

修正透過 UPM 的 OpenXR 問題

修正了 OpenXR 提供者預設未新增至link.xml的問題,導致新專案無法透過 Unity 的套件管理員在裝置上執行。 升級的現有專案仍然需要手動新增。

2.5.3 的新功能

修正 2.5.2 中引進的 回歸

2.5.2 在 整合 Sdk 時引進了組建問題。 此版本會還原此問題。

2.5.2 的新功能

新增 OpenXR 的支援

已新增 Unity 的 OpenXR 預覽套件和 Microsoft Mixed Reality OpenXR 套件的初始支援。 如需詳細資訊,請參閱 MRTK/XRSDK 入門頁面Unity 論壇文章Microsoft 的檔

重要

Unity 中的 OpenXR 僅支援 Unity 2020.3 和更新版本。 它也僅支援 x64、ARM 和 ARM64 組建。

已修正界限視覺效果錯誤

界限視覺效果,例如樓層或牆,現在會根據界限設定檔在執行時間正確設定並顯示。

適用于 Unity 的 MSBuild 支援

自 2.5.2 版起,已移除適用于 Unity 的 MSBuild 支援,以符合 Unity 的新套件指引

2.5.1 的新功能

已修正套件相依性錯誤

此版本修正了不正確的套件間檔案相依性 (,例如:標準資產中的檔案不再不正確地參考 Foundation) 中的檔案。 2.5.1 版也會在 Text Mesh Pro 上新增明確的相依性。

複製到 Assets/MRTK/著色器的標準資產套件著色器

透過 UPM 安裝標準資產套件時,著色器會複製到 Assets/MRTK/Shaders 資料夾,使其不再可變。 這可解決針對通用轉譯管線更新的著色器問題, (URP) 下次載入專案時還原舊版行為。

已修正電話埠游標黏手

此版本修正了遠端傳送目的地游標可黏附手部視覺效果 的問題

2.5.0 的新功能

Unity 套件管理員 (UPM) 支援

現在可以使用 Unity 套件管理員來管理Mixed Reality工具組。

MRTK Foundation UPM 套件

注意

匯入 MRTK UPM 套件需要一些手動步驟。 如需詳細資訊,請參閱Mixed Reality工具組和 Unity 套件管理員

取 XR SDK 支援

MRTK 現在支援使用原生 XR SDK 管線執行 取頭戴式裝置和控制器。 由於Eric Provencher 在MRTK-Quest 上的工作,取整合 Unity 套件也支援手部追蹤!

如需有關如何使用新管線在 News Quest 上部署裝置的指示,請參閱 設定指南

Scrolling 物件集合

MRTK UX 元件已從實驗性功能更新,並提供更自由的方式配置不同大小的 3D 內容,並新增對未附加碰撞器的物件支援。 也新增了停用內容遮罩的新選項,讓原型設計更容易。

如需詳細資訊,請參閱 Scrolling 物件集合

Scrolling 物件集合

Teleport 指標動畫、處理和音效改善

Teleport 指標現在已改善動畫和音訊意見反應。 我們也改善了遠端指標的處理,使其在從指向鄰近表面到更遠表面時處理更順暢。

輸入模擬速查表

HandInteractionExamples 場景現在有可設定的快捷方式,可顯示輸入模擬的說明頁面

輸入模擬速查表

使用滑鼠輸入模擬眼球注視

使用者現在可以使用滑鼠來模擬眼球追蹤。 Eye Simulation Mode請參閱輸入模擬設定檔中的欄位,並將其設定為 Mouse。 這會取代上一 Simulate Eye Position 個欄位。

眼球注視滑鼠

編輯器播放模式中的輸入模擬動作控制器

使用者現在可以模擬動作控制器,就像在編輯器播放模式中的手一樣。 目前支援觸發程式、抓取和功能表按鈕。

圓錐形抓取指標

擷取指標現在可以設定為使用擷取點的圓錐來查詢鄰近物件,而不是球體。 這更類似于預設HoloLens 2介面的行為,其會使用圓錐查詢鄰近物件。 DefaultHoloLens2InputSystemProfile 也已調整為使用新的 ConicalGrabPointer

圓錐形抓取指標

TestUtilities 套件

現在有一個套件 (Microsoft.MixedReality.Toolkit.Unity.TestUtilities.2.5.0.unitypackage) ,其中包含 MRTK 用來建立端對端測試的 PlayMode 和 TestMode 測試基礎結構。 此基礎結構對於 MRTK 小組本身非常實用,而且我們很高興讓取用者使用此基礎結構將測試涵蓋範圍新增至自己的專案。

下列程式碼示範如何建立測試手部、在特定位置顯示、移動它,然後捏合並開啟。

TestHand leftHand = new TestHand(Handedness.Left);
yield return leftHand.Show(new Vector3(-0.1f, -0.1f, 0.5f));
yield return leftHand.SetGesture(ArticulatedHandPose.GestureId.Pinch);
yield return leftHand.Move(new Vector3(0.2f, 0.2f, 0));
yield return leftHand.SetGesture(ArticulatedHandPose.GestureId.Open);

如需如何使用這些 TestUtilities 撰寫測試的指示,請參閱這一節關於 撰寫測試

如需使用此基礎結構的現有測試範例,請參閱 MRTK 的 PlayModeTests

支援 Leap Motion 4.5.1 Unity 模組

已新增 Leap Motion Unity 模組 4.5.1 版的支援,並移除 4.4.0 資產的支援。 Leap Motion Unity 模組目前的支援版本為 4.5.0 和 4.5.1。

初始 Leap Motion 整合也有其他步驟,如需詳細資訊,請參閱 How to Configure the Leap Motion Hand Tracking in MRTK

空間感知網格觀察者更能處理材質的自訂

在此版本中, Windows Mixed Reality Spatial Mesh ObserverGeneric XR SDK Spatial Mesh Observer 元件已改善視覺材質處理。 當觀察者已更新網格時,現在會保留材質,先前已重設為設定檔中所設定的預設 VisibleMaterial。

這可讓開發人員改變網格材質,而不會意外覆寫變更。

Link.xml在 MixedRealityToolkit.Generated 資料夾中建立

隨著 Unity 套件管理 MRTK 的引進,如果沒有任何檔案,MRTK 現在會將檔案 link.xmlAssets/MixedRealityToolkit.Generated 寫入資料夾。 建議您 (新增此檔案,並將 link.xml.meta) 新增至原始檔控制。 Link.xml可用來影響 Unity 連結器的 Managed 程式碼等量功能

如需 MRTK link.xml檔案的詳細資訊,請參閱 MRTK 和 Managed 程式碼等量分割 一文。

Unity 2019.3+:MRTK 設定對話方塊不再嘗試啟用舊版 XR 支援

若要避免使用 Unity 的 XR 平臺時可能發生的衝突,已從 [MRTK 設定] 對話方塊中移除啟用舊版 XR 支援的選項。 如有需要,您可以在 Unity 2019 中使用[編輯>專案設定>] 播放機>XR 設定> [虛擬實境支援] 來啟用舊版 XR 支援。

縮減 InitializeOnLoad 額外負荷

我們正努力減少 InitializeOnLoad 處理常式中執行的工作量,這應該會導致內部迴圈開發速度的改善。 InitializeOnLoad 處理常式會在每次腳本編譯時執行,再進入播放模式,並在編輯器啟動時執行。 這些處理常式現在會在較少的情況下執行,導致一般 Unity 回應性改善。

在某些情況下,必須進行取捨:

界限控制項已定型

界限控制項

界限控制 從實驗性開始,並隨附許多新功能和許多 Bug 修正。 以下是此更新重點的清單:

  • 屬性會分割成組態,讓您更輕鬆地設定界限控制項
  • 組態可以透過可編寫腳本的物件共用
  • 每個屬性/ 可編寫腳本的屬性都是可設定執行時間
  • 不再在屬性變更上重新建立界限控制架
  • 翻譯控制碼支援
  • 透過條件約束管理員的完整條件約束支援
  • 彈性系統整合 (實驗性)

舊的周框方塊現在已被取代,而且使用周框方塊的現有遊戲物件可以使用移轉工具或周框方塊偵測器來升級

條件約束管理員元件

條件約束現在可以透過新的 條件約束管理員元件,由界限控制項和物件操作工具使用。 這兩個元件都會根據預設建立條件約束管理員,並自動處理任何附加的條件約束。

此外,自動行為條件約束管理員也隨附手動模式,讓使用者決定應該處理哪些條件約束。 基於這個理由,我們在屬性偵測器中顯示條件約束的方式變更了一些。

顯示手動條件約束管理員選取的偵測器檢視

套用至元件的條件約束現在會顯示為條件約束管理員元件中的清單,而使用條件約束管理員的元件 (系結控制項物件操作工具) 現在會顯示選取的條件約束管理員和模式 (自動或手動) 。 如需詳細資訊,請參閱檔中的 條件約束管理員 一節。

HoloLens 2按鈕材質更新

已更新HoloLens 2按鈕的前端框架材質,以移除 MRC 中的黑色色彩。

HoloLens 2按鈕材質更新

描述面板更新,可移動的範例場景

已更新的描述面板。 (SceneDescriptionPanelRev.prefab) 新設計提供可抓取的頂端列,讓使用者能夠調整/移動整個場景。

描述面板更新

空間網格視覺效果 - 空中點選上的脈衝

已更新空間網格的脈衝著色器範例,以符合HoloLens 2的殼層行為。

無線點選上的脈衝

彈性系統 (實驗性)

彈性系統2

MRTK 現在隨附 彈性模擬系統 ,其中包含各種不同的可延伸和彈性子類別,提供 4 維四元數彈簧、3 維磁片區彈簧和簡單的線性彈簧系統的系結。

目前支援 彈性管理員 的下列 MRTK 元件可以利用彈性功能:

展開彈性功能表擷取彈性咖啡杯

搖桿 (實驗性)

可控制大型目標物件的搖桿介面範例。

操縱 杆

色彩選擇器 (實驗性)

實驗性控制項,可讓您輕鬆地在執行時間變更任何物件上的材質色彩。

三種不同的色彩選擇器控制項方法

色彩選擇器控制項的四種不同方法

重大變更

元件定義檔案變更

某些 asmdef 檔案已變更,現在僅支援 Unity 2018.4.13f1 或更新版本。 在舊版 Unity 中更新至 MRTK 2.5 時,將會顯示編譯錯誤。 若要修正此問題,請移至 Assets\MRTK\Providers\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.asmdef 專案視窗中,並移除偵測器中遺漏的參考。 使用 Assets\MRTK\Providers\Oculus\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.Oculus.asmdefAssets\MRTK\Providers\WindowsMixedReality\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.WMR.asmdef 重複這些步驟。 請注意,您必須將這三個 asmdef 檔案取代為原始 (,也就是升級至 Unity 2019 時未修改) 變更。

IMixedRealityPointerMediator

此介面已更新為具有新的函式:

void SetPointerPreferences(IPointerPreferences pointerPreferences);

如果您有沒有子類別 DefaultPointerMediator 的自訂指標媒體器,您必須實作這個新的函式。 如需新增原因的詳細資訊,請參閱 此問題 。 已新增此選項,以確保指標喜好設定會明確傳遞至媒體器,而不是根據採用 IPointerPreferences 的建構函式來隱含完成它。

Rest / Device Portal API

UseSSL靜態屬性已從 RestDevicePortal 移至 。

如果您先前已這麼做...

Rest.UseSSL = true

立即執行此動作...

DevicePortal.UseSSL = true

Link.xml

如果應用程式先前使用 MRTK 的 NuGet 散發套件,則檔案 link.xml 已從 Foundation 套件中移除。 若要還原程式碼保留規則,請在 Unity 中開啟專案一次,並在 中 Assets/MixedRealityToolkit.Generated 建立預設 link.xml 檔案。 建議將此檔案 (並 link.xml.meta) 新增至原始檔控制。

轉換條件約束變更

TargetTransform 屬性已標示為過時,因為條件約束系統未使用它。 條件約束邏輯是以傳遞至 Initialize 和 Apply 方法的轉換為基礎。 依賴此屬性的衍生使用者條件約束可以藉由儲存條件約束元件的轉換來快取其實作中的 TargetTransform,以達到相同的行為。

預存的初始世界姿勢 worldPoseOnManipulationStart 資料類型已從 MixedRealityPose 變更為 MixedRealityTransform,其中包含操作物件的本機小數位數值。 有了這項變更,就不再需要個別快取任何初始刻度值。

IMixedRealityDictationSystem 中的新屬性

已將新的屬性 AudioClip 新增至 IMixedRealityDictationSystem 介面。 屬性 AudioClip 可讓您存取與目前聽寫會話相關聯的音訊剪輯。 使用者必須在實作 介面的腳本中實作 屬性。

服務外觀關閉

服務外觀在 2.5 中關閉。 這項功能原本已新增,可藉由建立代表每個 MRTK 服務) 的假 GameObjects,讓 MRTK 設定檔的設定更容易 (。 在長時間執行中,我們想要避免建立假的遊戲內物件,並嘗試讓它們保持同步 (,因為資料同步處理和「事實來源」問題很不容易調整並正確) 。

在 2.5 中,服務外觀處理常式會保持四周,以確保專案升級順利進行 - 服務外觀處理常式將會刪除存在於專案中的任何外觀,以確保在 2.5 中開啟的場景會自動修正。

未來版本中將會移除與服務外觀功能相關聯的其餘程式碼。

將動作控制器新增至輸入模擬服務

動作控制器模擬現在會隨著現有的手部模擬,在編輯器播放模式中提供。 若要啟用這項變更,許多目前的函式/欄位/屬性現在標示為過時,並 InputSimulationService.csMixedRealityInputSimulationProfile.cs 取得最重要的變更。 相關程式碼的邏輯和行為大致保持不變,以及大部分過時的函式等等。與將 「hand」 的參考取代為較泛型的「controller」 (例如從 DefaultHandSimulationModeDefaultControllerSimulationMode) 。 除了取得新名稱之外,會更新特定新函式的傳回類型,以符合名稱/行為變更 (,例如 GetControllerDevice ,根據原始 GetHandDevice 函式現在會 BaseController 傳回 ,而不是 SimulatedHand) 。

IInputSimulationService 現在有新的屬性 MotionControllerDataLeftMotionControllerDataRightMixedRealityInputSimulationProfile 現在包含特定動作控制器按鈕鍵盤對應的新欄位。

已知問題

CameraCache 可能會在關機時建立新的相機

在某些情況下, (例如,在 Unity 編輯器中使用 LeapMotion 提供者) 時,CameraCache 可以在關機時重新建立 MainCamera。 如需詳細資訊 ,請參閱此問題

透過 Unity 套件管理員匯入範例時,FileNotFoundException

視專案路徑的長度而定,透過 Unity 套件管理員匯入範例可能會在 Unity 主控台中產生 FileNotFoundException 訊息。 原因是「遺漏」檔案的路徑超過 MAX_PATH (256 個字元) 。 若要解決,請縮短專案路徑的長度。

未指定空間化程式。 應用程式不支援空間音效

如果未設定音訊空間化程式,則會出現「未指定空間化程式」警告。 如果未安裝 XR 套件,因為 Unity 會在這些套件中包含空間化程式,所以可能會發生這種情況。

若要解決,請確定:

  • 視窗>套件管理員已安裝一或多個 XR 套件

  • Mixed Reality工具組>公用程式>設定 Unity 專案,並選取音訊空間化程式

    選取音訊空間化程式

NullReferenceException:物件參考未設定為物件實例 (SceneTransitionService.Initialize)

在某些情況下,開啟 EyeTrackingDemo-00-RootScene 可能會導致 SceneTransitionService 類別的 Initialize 方法中有 NullReferenceException。 此錯誤是因為場景轉換服務的組態設定檔未設定。 若要解決,請使用下列步驟:

  • 流覽至 MixedRealityToolkit Hierarchy 中的物件
  • 在 [偵測器] 視窗中,選取 Extensions
  • 如果未展開,請展開 Scene Transition Service
  • 將 的值 Configuration Profile 設定為 MRTKExamplesHubSceneTransitionServiceProfile

修正場景轉換

Oculus Quest

獨立平臺為目標時,目前有一個已知問題是搭配使用 XR 外掛程式。 請查看 取錯誤追蹤器/論壇/版本資訊以取得更新。

錯誤會以這組 3 個錯誤表示:

取 XR 外掛程式錯誤

UnityUI 和 TextMeshPro

較新版本的 TextMeshPro (1.5.0+ 或 2.1.1+) 有已知問題,其中已改變下拉式清單和粗體字型大小間距的預設字型大小。

TMP 影像

這可以藉由降級為舊版 TextMeshPro 來解決此問題。 如需詳細資訊 ,請參閱問題 #8556