2020/10/20

unityroomへのアップロードで更新が反映されない→解決メモ

解決までの経緯などをメモ

unityroomへのアップロード

  • 現在脱出ゲームを作っていて、まずは試作版をunityroomさんにアップさせてもらおうと思いUnityEditorにてWebGL形式でビルドしてアップロード。非公開で自分だけが見れる状態で動作確認OK、ここまで問題なし。

    ※登録やアップロードの手順はunityroomのサイトにて詳しく説明されています。
    フリーゲーム投稿サイト unityroom

unityroomへの再アップロード(アプリの更新)

    シークレットモードで解決はしたけれど

        • Chromeのシークレットモードで更新は反映されましたが、あくまで開発者側としての解決で、仮に遊んでくれているユーザが同様に「ゲームページを Shift + F5 でスーパーリロードする」でキャッシュクリアされなかった場合どうするのかと。
        • もう少し調べてみたところ、今回の自分の環境では[Ctrl]+[Shift]+[R]キーで更新が反映されることがわかりました。でも以下のサイトでは「ショートカットキーは[Ctrl]+[Shift]+[R]キー(または[Shift]+[F5]キー)だ。」と書かれていてunityroomで説明されている操作と同等のはずで、違いがわからないまま・・・。
          参考)
          Chromeには3種類の“再読み込み”があるって知ってた? Webページ上の画像などを最新の状態にするテク - 窓の杜

        一応の結論

        1. [Shift]+[F5]キー でのキャッシュクリアを試す。
        2. 反映されないようなら、(同等のはずだけどと思いながら)[Ctrl]+[Shift]+[R]を試す。
        3. それでもダメな場合のみ、Chromeのシークレットモード。

        以上メモでした。
        脱出ゲームの試作版を完成まで持っていけるよう開発頑張ります(完成したらunityroomさんで公開予定なので誰か遊んで)。

        2020/10/09

        Unityシーンビューのギズモ(Gizmo)について(表示/非表示/独自拡張)

        ギズモの表示/非表示/独自拡張

        Gizmosメニューでの表示/非表示

        現状

        • Unityのシーン上には様々なゲームオブジェクトが配置されます。そしてUnityエディタのシーンビュー上には、情報を補足するように様々なギズモ(Gizmo)も表示されています。で、時にはこんな表示になったりするわけです。うわああ

        • 普段なら「情報提供ありがとう」なんですが、上記のように「情報過多、操作の邪魔」となる場合も少なくない。今回はVery Animationでアニメーションを作ろうとしてたので余計なギズモが多過ぎる。ということで不必要なギズモを非表示にします。
        • 表示/非表示の制御はGizmosメニューから行います。大量のギズモの一覧から不必要なもののチェックを外す。カメラやライトの3Dアイコンはバーの値を最小にすることで非表示になります。

        3Dアイコンの非表示後

          • カメラやライトの3Dアイコンが非表示になってこんな感じに。URP版のSSU(サニーサイドアップ)ユニティちゃんの顔も見えるように。でもまだまだユニティちゃんのゲームオブジェクト周辺に、ジャラジャラとアクセサリーのような余計なものが表示されていますね。

          • 3Dアイコンは非表示になりましたが、ユニティちゃんまわりの表示はごちゃごちゃのままなので、余計なものを非表示にしたい。
          • この「余計なもの」の正体はユニティちゃんの揺れもののボーンやコライダの情報で、OnDrawGizmosメソッドやOnDrawGizmosSelectedメソッドをエディタから呼び出してもらってスクリプトでわざわざ描画してくれている、本来は「情報提供ありがとう」なものです。
          • 今回やりたいアニメーション制作時にはこれらの情報は必要ないので非表示にします。Gizmosメニューで対象スクリプトのチェックを外します。

          スクリプトによるギズモ描画の非表示後

              • するとこのように、スッキリ!
                これでアニメーションの製作作業が捗る、はず。

              コンポーネントを閉じることでの非表示

              Gizmosメニュー以外でも表示/非表示が可能

              • スクリプトによるギズモ描画はGizmosメニュー以外でも制御できます。方法は簡単で、描画しているスクリプトのコンポーネントを折りたたむだけです。わかってしまえば簡単なんですが、ギズモを非表示にするための操作としては、少しマニアックな気もします。
              • 今回の場合、対象となるのは以下のスクリプトコンポーネント。
                • UnityChanSSUゲームオブジェクト(プレハブ)に付いているSpringManager
                • 子のCOL_UpperChestゲームオブジェクトに付いているSpringCapsuleCollider
                • 子のCOL_Head_HairFゲームオブジェクトに付いているSpringSphereCollider
              • この方法は、同じスクリプトコンポーネントが複数のオブジェクトに付いていて、一部の描画だけを外したい場合に有効だと思います。今回の場合は一括で外したかったのでGizmosメニューから行いました。

              ギズモの独自拡張(追加)

              ギズモはオリジナルのものを追加可能

              • 前述したユニティちゃんに付加されたギズモのように、スクリプトからギズモの描画を追加することができます。Unityエディタ上で動作するツール系アセットも、必要に応じて独自のギズモを追加しています。ちょっとしたエディタ拡張やツール系のアセットを自作したい場合なんかは、特に重宝しそうです。
              • ギズモの描画を追加するのは簡単です。
                (いつもの)MonoBehaviour継承のスクリプトで
                • 常に描画したい場合は、OnDrawGizmosメソッドを実装
                • 対象のゲームオブジェクトが選択された場合だけ描画したい場合は、OnDrawGizmosSelectedメソッドを実装
                • UNITY_EDITORコンパイラディレクティブ使いましょう
              • 以下のサイトで、独自ギズモ追加のサンプルが紹介されています。
                参考)
                【Unity】OnDrawGizmos で表示できるギズモを7種類追加できる「GizmoExtensions」紹介 | コガネブログ


              ということで、スッキリしたシーンビューでVery Animationを使ってアニメーション制作したいと思います。



              2020/09/19

              UnityとAndroid StudioのAPKファイル渡しと、Google AdMob広告のテスト表示について

              UnityでのAndroidアプリ開発メモ

              (AdMob広告表示対応)

              Unity上での設定

              Android対応

              • Unity Hubにて、Android Build Support用のモジュールをインストールしておく。Android SDK & NDK Tools と OpenJDK

              • Unityエディタにて、File > Build Settings からプラットフォームをAndroidに切り替える。

              • File > Build Settings > Project Settings > Player Settings... から最低限Playerの Company Name と Product Name を設定しておく。以下は一例

              • 同じくPlayerの設定で64Bit対応を行う。
                Other Settings > Configration の Scripting BackEnd を IL2CPP に設定する。
                Target Architectures の ARM64 にチェックを追加する。


                Androidアプリの64Bit対応は必須となっている。
                参考)
                Android Developers - Google Play - 64 ビット アーキテクチャのサポート
              • 以上の設定で、 File > Build Settings > Build を実行すればAndroid向けのAPKファイル(.apk)が生成されます。
              • 必須ではありませんが、モバイル向けの開発にはUnity上でモバイル端末をシミュレートしてくれる「Device Simulator」が便利です。Window > Package Manager から追加できます。

                Google Admob 広告対応


                Android Studio上での設定

                • UnityでビルドしたAndroid向けのAPKファイルを、本家のAndroid Studioにて実行・確認することができます。
                • 「Profile or Debug APK」よりAPKファイルを選択し、エディタ上で実行すると以下のようなエミュレータ上にてアプリの動作が確認できます。
                   
                • エミュレートするモバイル端末はAVD (Android Virtual Device) Managerから追加インストールできます。

                • Android Studioのエミュレータ上ではGoogle Mobile Adsのテスト広告も表示されるので、実機無しで広告の表示位置などを確認するのに便利です。

                UnityとAndroid Studioのx86絡み問題 

                Unity

                  -----------------------------------------------------------

                  x86 ベースの Android サポートについて

                  Unity では、Android の ARM 64 ビットサポートを追加した一方で、x86 ベースの Android の使用状況の調査も行いました。その結果、x86 ベース Android デバイスの市場への供給は非常に限られたものであり、Unity の x86 ベース Android サポートの導入も非常に狭い範囲に留まったことが分かりました。このため、x86 ベースの Android サポートはバージョン 2019.2 をもって廃止となり、Unity 2019.3 をもって完全に削除されます。Unity 2018 の各バージョンと、2018.4 LTS における x86 ベース Android のサポートは、当該バージョンのライフサイクルが終了するまで維持されます。 

                  ----------------------------------------------------------- 

                  Android Studio

                     つまり、Android Studio上では x86 のシステムイメージの高速エミュレータを使用したいが、Unityが生成するAPKは x86アーキテクチャの対応は廃止しているので高速エミュレータが使えないジレンマ。かといってUnityの旧バージョンで x86アーキテクチャ出力するのでは何をしているのか本末転倒という・・・。

                    • Unityの「Device Simulator」の進化に期待する。まだプレビューだし。
                    • Android Studioの x86 以外のエミュレータ高速化に期待する。いや性質からいっても期待薄。

                    そんなところです。