- HoloLens 2 の Unity アプリ内で WebView が利用できるようになりました。
- WebView2 の簡単な使い方とPointerによるマウス入力をHoloLensで行う処理を紹介します
動作環境
- Unity 2022.3.5f1
- MixedRealityToolkit(MRTK) 2.8.3
- HoloLens 2 Windows 11
参考ページ
HoloLens 2 Unity アプリでの WebView2 の概要 (プレビュー) - Microsoft Edge Development
Mixed Reality WebView プラグインの API リファレンス (プレビュー) - Mixed Reality
Unity での WebView 利用手順
- Unityプロジェクトに Microsoft Mixed Reality Feature Tool から以下のパッケージを追加
- Microsoft Mixed Reality WebView (Preview) 0.17.1-pre.5
- Mixed Reality Toolkit Foundation 2.8.3
- Mixed Reality Toolkit Standard Assets 2.8.3
- Mixed Reality OpenXR Plugin 1.8.1
- HoloLens 2 用のMRTKの初期設定を行う
- Unity Editor のメニューから
Mixed Reality/Toolkit/Add to Scene and Configure…
を選択 Packages/Microsoft Mixed Reality WebView (Preview)/Runtime/Prefab
からWebView.prefab
をシーンに配置- WebViewのCurrent URLに表示したいWebページのアドレスを入力
- Universal Windows Platform (UWP) のARM64でBuildを行い HoloLens 2上で動作確認
Unity Editor のEditor拡張で表示確認
以下のEditor拡張からUnity EditorのメニューからWebViewを表示することができます
using UnityEngine; using UnityEditor; public class EditorWebViewControl : MonoBehaviour { [MenuItem("WebView/WindowTest")] static void Init() { var window = (EditorWebView)EditorWindow.GetWindow(typeof(EditorWebView)); window.GetWebViewWhenReady(web => web.Load(new System.Uri("https://akihiro-document.azurewebsites.net/"))); window.Show(); } }
HoloLens 上で WebView を操作できるようにする
- HoloLensでのWebViewの画面操作機能は提供されていないため、自前で実装する必要があります
- マウス操作をHoloLensのPointerで代用することでクリックとスクロール操作を行います
- マウス操作は
IWithMouseEvents
を経由してWebView内に伝えられます - 詳しい実装は以下のサンプルプロジェクトにあります
- https://github.com/akihiro0105/HoloLensWebView2Unity
HoloLensWebView2Unity/WebView2022/Assets/WebViewControl/WebViewControl.cs
HoloLens の Unity 内で WebView 操作できた。
— アキヒロ (@akihiro01051) July 22, 2023
スクロールも対応#HoloLens #Unity pic.twitter.com/o7kdWWUTMu
追記事項
- 今回の実装ではマウス入力のみ実装しましたが、キーボードが接続されている場合にはキーボード入力が利用できるページもあります
- 有線でHoloLens 2とキーボードを接続して確認
- Youtube, Google検索などは利用可能
- Microsoft Teamsでは利用不可
- HoloLens搭載のシステムキーボードは利用不可
- WindowsのStandaloneとUWPのほかにAndroidにPluginが対応している
- 自分の環境では進むと戻る機能が動かなかった