まな鯛

unityでゲーム開発をしています 開発中に躓いたところを書いておいて、また自分が同じ…

まな鯛

unityでゲーム開発をしています 開発中に躓いたところを書いておいて、また自分が同じところで躓いた時や、同じところで躓いた誰かの役に立てばいいなと思います

最近の記事

最初のシーンに飛んでプレイ開始をエディタ拡張でワンボタンでやろうとしたら謎の現象が起きた

テストプレイをするのにいちいちタイトルシーンやステージセレクトみたいなシーンに戻るのめんどくさいですよね。そこでワンボタンでそれらを終わらせるエディタ拡張を作ったのですが、どうやら動きがおかしい 何が起きた? ステージセレクトに飛んでプレイ開始としか指示を出していないのに、なぜかステージが選ばれるところまでセットで行われてしまう コード解説 private void OnGUI() { if (GUILayout.Button("ステージセレクトか

    • [Unity]Tilemapのタイルとタイルの間に謎の線が出る

      症状 単色のタイルを敷き詰めたが、タイルとタイルの間に線が入る カメラの位置や大きさによって線が出るか否か、線が出るタイル、数、頻度などが変わる 解決Tileの元となる画像を変更し、タイルの周りに余白を持たせた おそらく一回り大きい四角にすれば解決だが、画像サイズを2の冪乗にしたい。それにスプライトをSliceするときに楽なので余白を持たせることにした。 最後に、元画像ではなくスライスされてできた画像たちを選んで、Tile Paletteに載せてパレットを作る (この時

      • google admob にログインしようとしても、ログインページが表示されない

        解決safariではなくgoogle chrome を使ってページを開く 経緯 Safariからだと、ログインを押しても無限にリダイレクトが続き、目的のログインページに辿り着かずエラーが出ていた。 そこでブラウザをgoogle chromeに変えると、問題なく開くことができた

        • unityの"build and run"時にandroid端末を認識してくれない

          解決 開発者向けオプションのUSBデバッグが勝手にオフになっていたので、オンにした。

        最初のシーンに飛んでプレイ開始をエディタ拡張でワンボタンでやろうとしたら謎の現象が起きた

          UnityでAndroid向けBuildをすると"Gradle build failed. See the Console for details"エラーが出る

          use.androidXをtrueにして、みたいなことが書かれていた 解決PlayerSettings - Androidのマーク - Publishing Settings - Build - Custom Gradle Properties Template にチェックを入れる 設定ファイルが生成されたことを確認すると、無事ビルドできた。 (設定ファイルには、以下の項目も書かれていた) android.useAndroidX=trueandroid.enableJet

          UnityでAndroid向けBuildをすると"Gradle build failed. See the Console for details"エラーが出る

          OrderBy()でList内の順番を入れ替えたのに反映されない

          List<Card> cards = GetCards();cards = cards.OrderBy(a => System.Guid.NewGuid()).ToList(); CardのListを引っ張ってきて、Guidを使ってシャッフルしたはずが、なぜか反映されない。 解決 Listの参照先を値渡ししていたから。 ref List<Card> cards = ref GetRefCards();cards = cards.OrderBy(a => System.

          OrderBy()でList内の順番を入れ替えたのに反映されない

          Unityの自作クラスでclassの拡張メソッドであるDeepCopy()をしようとしたらエラーが出る(自分用メモ)

          結論 Unityの"ScriptableObject"などは[Serializable]でないため、それらを継承したクラスはDeepCopy()できない。 DeepCopy()って? このサイトのように、DeepCopy()をC#に実装することで、簡単にクラスのディープコピーができるようになる。ただし、ディープコピーするクラスに[System.Serializable]を付与しなければならない。 対策 "ScriptableObject", "MonoBehavio

          Unityの自作クラスでclassの拡張メソッドであるDeepCopy()をしようとしたらエラーが出る(自分用メモ)

          UnityroomでWebGLのゲームをSafariで読み込む時にエラーが出ることへの対処方法の提案

          急ぎの結論TextMeshProではなくTextを使えば大丈夫になるかも? 暫定的なものであり、詳しく調べたわけではありませんが、試す価値はあると思います。 経緯 バージョン2020.3.25f1で製作したゲームをバージョン2021.3.22f1でリメイクし、再びUnityroomに投稿しようとしていたが、途中段階を製作仲間と共有する際に限定公開でUnityroomにアップロードしたところ、iPhoneからプレイできないことが発覚した。 症状 ・iPhoneのSaf

          UnityroomでWebGLのゲームをSafariで読み込む時にエラーが出ることへの対処方法の提案

          CustomEditorを使って作ったスクリプトがInspectorに反映されない時(エディタ拡張)

          [CustomEditor(typeof(GameManager))] 前まで反映されていたのに反映されなくなったのですが、一旦解決したので書いておきます。 検索しても全然引っかからないし、似た症状の人も見つけられなかったんですよね 何をしたら直ったか ・Editorフォルダの"Assembly Definition Asset"を消す これで解決しました。 私のプロジェクトでは自作のものをまとめたAppフォルダにAppという名のこれを、Assets/App/Scri

          CustomEditorを使って作ったスクリプトがInspectorに反映されない時(エディタ拡張)

          unityで拡張メソッドが使えなくなったときに

          当たり前ですが、使えるはずなんです。でもうまくいきませんでした。 SceneManagerに拡張メソッドを追加したいなということで作ったのですが、なぜか呼び出せませんでした。 c# 拡張メソッド 反映されない とかで検索しても何も出ず、困っていたのですが、自己解決したので書き留めておきます 結論:拡張メソッドは、インスタンスメソッドとして使う インスタンスメソッドは、変数名とかの後ろにつけて使うやつですね int i = 0;string str = i.ToSt

          unityで拡張メソッドが使えなくなったときに