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 版也會新增文字Mesh Pro的明確相依性。

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

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

已修正電話埠游標黏手

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

2.5.0 的新功能

Unity 封裝管理員 (UPM) 支援

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

MRTK Foundation UPM Package

注意

匯入 MRTK UPM 套件需要一些手動步驟。 如需詳細資訊,請檢閱Mixed Reality Toolkit 和 Unity 封裝管理員

取 XR SDK 支援

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

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

Scrolling 物件集合

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

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

Scrolling Object Collection

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

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

輸入模擬速查表

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

Input Simulation Cheat Sheet

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

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

Eye Gaze Mouse

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

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

圓錐形抓取指標

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

Conical Grab Pointer

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

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

在此版本中, 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 中使用Edit>Project 設定Player>XR 設定>>Virtual Reality Supported啟用舊版 XR 支援。

縮減 InitializeOnLoad 額外負荷

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

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

界限控制項已定型

Bounds control

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

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

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

條件約束管理員元件

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

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

Inspector view showing manual constraint manager selection

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

HoloLens 2按鈕材質更新

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

HoloLens 2 button material update

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

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

Description panel update

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

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

Pulse on air-tap

彈性系統 (實驗性)

Elastic System2

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

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

Expanding an elastic menuGrabbing an elastic coffee cup

搖桿 (實驗性)

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

Joystick

色彩選擇器 (實驗性)

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

Three different methods of color picker control

Four different methods of color picker control

重大變更

元件定義檔案變更

某些 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 服務) 的假遊戲Objects,讓 MRTK 設定檔的組態更容易 (。 在長時間執行中,我們想要避免建立假的遊戲內物件,並嘗試讓它們保持同步 (,因為資料同步和「事實來源」問題很難調整並取得正確的) 。

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

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

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

動作控制器模擬現在會隨著現有的手部模擬,在編輯器播放模式中提供。 為了啟用這項變更,許多目前的函式/欄位/屬性現在已標示為過時,並 InputSimulationService.csMixedRealityInputSimulationProfile.cs 取得最重要的變更。 相關程式碼的邏輯和行為大致相同,而且大部分已過時的函式等都與取代「手」的參考取代為較泛型的「控制器」一詞 (例如從 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 Project,並選取音訊空間化工具

    Select Audio Spatializer

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

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

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

Fix Scene Transition

Oculus Quest

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

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

Oculus XR Plugin Error

UnityUI 和 TextMeshPro

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

TMP image

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