はじめに
今回はgree/unity-webviewというgreeがOSSとして公開しているWebViewをUnityアプリ上で表示するプラグインを紹介します。
unity-webview is a plugin for Unity 5 that overlays WebView components on Unity view.
// DeepL翻訳
unity-webviewはUnityビューにWebViewコンポーネントをオーバーレイするUnity 5用のプラグインです。

対応プラットフォーム
- Android
- iOS
- Unity Web Player
- Mac
ただしWindowsはサポートしていないので注意してください。
WebViewとは
そもそもWebViewとはなんなのかと思われる方もいるかと思うので補足しますが、アプリに組み込まれるウェブコンテンツを表示するための機能のことを指します。
Webview or embedded browser control is a web browser that is embedded in a native app to display web content.
// DeepL翻訳
ウェブビューまたは埋め込みブラウザコントロールは、ウェブコンテンツを表示するためにネイティブアプリに埋め込まれるウェブブラウザです。
インストール
Package ManagnerのAdd package from git URL...に以下のURLを打ち込むことでインストールできます。
https://github.com/gree/unity-webview.git?path=/dist/package

manifest.jsonに以下を追加してください。
{
"dependencies": {
...
"net.gree.unity-webview": "https://github.com/gree/unity-webview.git?path=/dist/package",
...
}
}
使い方
まずは必要最低限な使い方を見ていきます。
private void Start() { var webViewObject = new GameObject("WebViewObject").AddComponent<WebViewObject>(); // 初期化 webViewObject.Init( // NOTE: iOSでUIWebViewではなくWKWebViewを利用する(現在はほぼ必須な設定項目だと思ってもらえれば) enableWKWebView: true ); // URLを読み込みWebViewを表示する webViewObject.SetVisibility(true); webViewObject.LoadURL("https://www.google.co.jp/"); }
WebViewObjectコンポーネントに対してInitとした後にSetVisibillity + LoadURLを実行するだけでWebViewを正しく表示できます。
Marginを設定する
// left, top, right, bottom webViewObject.SetMargins(0, 0, 0, 100);
BASIC認証をする
webViewObject.SetBasicAuthInfo("Username", "Password");
補足ですがURLにBASIC認証を埋め込んだりもできますが、Safariといったブラウザでは動作しないのでこちらのメソッドを利用するようにしてください。
http://ユーザ名:パスワード@example.com
ブラウザのページを進める
if (webViewObject.CanGoForward())
{
webViewObject.GoForward();
}
ブラウザのページを戻す
if (webViewObject.CanGoBack())
{
webViewObject.GoBack();
}
エラーのログをコンソールに出力する
webViewObject.Init(
// NOTE: iOSでUIWebViewではなくWKWebViewを利用する(現在はほぼ必須な設定項目だと思ってもらえれば)
enableWKWebView: true,
// エラーの時はログを出力するようにしておく
err: x => Debug.LogError($"ERR: {x}"),
httpErr: x => Debug.LogError("HTTPERR: {x}")
);
注意点
Project Settings > Player > Other Settings > Configuration > Internet AccessをRequireにしないとWebViewが正しく動作しないケースがあるので注意してください。
