【Unity Web】PWA(Progressive Web App)をざっくり調べてみた話

最近、Unity Web関連を触ることが多くなってきたので、前々から気になっていた「PWA」についてちょっと調べてみました。
何か活用できるようであれば、自作ゲームに活用していきたいなーと。

そもそも何者かも知らなかったのでまずは用語について確認から...

PWA(Progressive Web App)とは

PWA(Progressive Web App)とは、
長ざっくり説明すると、Webサイトをネイティブアプリのように使える仕組みのことです。

たとえば、スマホのホーム画面に追加できたり、
オフラインでも一部機能が動作したりと、
“見た目はWeb、動きはアプリ” な存在らしいです。

PWAでできること(ざっくりまとめ)

機能内容
1. ホーム画面追加アプリのように起動できる
2. オフライン対応キャッシュで一部オフライン動作も可能
3. フルスクリーン表示アドレスバーを消して没入感UP
4. 高速起動キャッシュによる起動の高速化
5. プッシュ通知(Android)条件次第で通知対応も可能(iOSは制限多い)

ただのWebGLに比べて色々できることが多いみたいです。
アプリっぽく+オフラインでも振る舞えるのはいいですね。遊ぶ側からしたら便利そう。

PWAに必要な構成

PWA対応には以下の2ファイルが必要になる模様

  • service-worker.js
    リソースのキャッシュ処理やオフライン対応を行うJS
  • manifest.json
    アプリアイコン・起動URL・表示モードなどを記述

Unityで使うには(WebGL テンプレート)

Unity6000.1.11f1を現状使っていますが、WebGLテンプレートの中に「PWA」が用意されています。
テンプレート内のファイル構成を確認したところ、以下のようになってました。

ファイル名役割
index.htmlゲームの起動ページ(テンプレートとして使われる)
manifest.webmanifestアプリ名・アイコン・表示モードなどを定義する設定ファイル
ServiceWorker.jsオフラインキャッシュやPWA機能を支えるJavaScript

もしかしたらUnityバージョンでファイル名や拡張子が異なるかもしれませんが、大枠は変わらないのかな?と思います。

最後に

ということで、今回はざっくりと「PWA」というものがどんなものかをまとめてみました。

Webの大きなメリットは「誰かに遊んでもらうために、ストアの審査を突破しなきゃいけない」というあの面倒なステップを踏まなくても、すぐに公開できることだと思っています。
(iOSならApple、AndroidならGoogleの審査を通らないと、ストアにすら出せません...リジェクトされることも珍しくなく、場合によっては数週間かかることも...泣)

ただその一方で、ブラウザで動かす以上「オンラインじゃないと動かない」などの制約があるのも事実です。

でも、今回調べたPWAの仕組みをうまく活用すれば、そうした制限をある程度回避しつつ、アプリに近い形でゲームを提供できるのでは?と感じました。

軽く調べてみて今すぐPWAを使わなきゃ!というほどのものではなかったですが、選択肢の一つとして知っておくのもありだと思うので、今後ちょっと検証してみたいなと考えています。

実際にUnity WebGLでPWAを試してみたら、そのあたりもまた記事にしてみようと思います!

\ 最新情報をチェック /

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です