テクノモンキーのアプリ開発日記

テクノモンキーの開発ブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsやアプリ開発に役立つ情報を発信します。

Unity

【Unity】Buttonが反応しない場合に確認すべきことまとめ

Unityで設置したButton(ボタン)が反応しない場合っていくつかの原因が考えられますが、今回、今までに経験していないボタンが反応しないパターンに遭遇したのでメモとして残しておきたいと思います。状況・現象としては、Buttonをタップしても反応しない(…

【Unity】プレイヤーでどのシーンから再生しても最初のシーンから起動するようにする設定

Unityアプリ開発での効率化に関するメモ。Unityで複数のシーンを使ったアプリを作る場合、他の画面でも使うようなGameObjectを「DontDestroyOnLoad」で永続化させることが結構あります。他のシーンでも使うオブジェクトは、だいたいアプリを起動するシーンで…

【Unity】DateTimeクラスにnullを設定したい場合の対処法(C#)

Unityでカレンダー画面を実装するためにDateTimeクラスを使用したのですが、 DateTimeクラスはそのままだとnullが設定できないっぽいです。 今回はDateTimeクラスにnullを設定する方法に関するメモです。DateTimeクラスにnullが設定できれば何も問題なかった…

【Unity】Imageのスプライトをスクリプトで切り替えるとアスペクト比がおかしくなる場合の対処法

UnityでImageのSpriteをコードで切り替える処理を行ったのですが、画像自体は切り替えられるけど、アスペクト比がおかしくなる現象が発生しました。やりたいこととしては、シーンにImageを配置して、カレンダーの日付に応じてスクリプトでImageのSpriteを切…

【Unity】アプリのFPSを確認する・FPS設定を変更する方法

Unityで作ったアプリでクライアントから「Android版の動作がもっさりしている」という指摘を受けたので、高速化する方法を色々調べていたら、FPS(Flames Per Seconds)を変更する方法があったので試してみました。【Unity】FPSを確認する方法まず、現状のア…

【Unity】ランダムな値を生成する方法と、UnityEngine.RandomとSystem.Randomの競合について(C#)

Unityでランダムな値を生成する方法に関するメモ。ランダムな値を生成したい場合はUnityEngine.Random.Rangeを使用します。上記の例だと、0以上100未満(99まで)の値の中からランダムで値を生成します。第2引数の値はランダムな値に含まないのがポイントで…

【Unity】ゲームオブジェクトの表示順(レイヤーの重ね順)の問題を解決する方法

Unityでアプリを作っている時に、UIのImageとSpriteの表示順(レイヤーの重ね順)が意図した順番にならなくて困ったので今後の為にメモ。ゲームオブジェクトの重ね順が意図した表示にならない。Hierarchy上で順番を変更してみたり、ゲームオブジェクト毎にレ…

【Unity】iOSのステータスバーの文字色を変更する方法

Unityで作ったアプリでステータスバーを表示する方法を以前書いたのですが、ステータスバーの文字色を変更する必要も出てきました。上記の設定によりステータスバーを表示することはできますが、iOSの場合、ステータスバーのデフォルトの文字色は黒なのでUni…

【Unity】intの値が5の倍数かを判定する方法(C#)

Unityアプリ開発で「リスト表示でアイテム5個毎に線を引く」という実装をする時に リストのindexの値が5の倍数かどうかを判定する必要があったのでメモ。〇〇の倍数かを判定する。まずコードを書く前に5の倍数かどうかを判定するロジックを理解する必要があ…

【Unity】2つのList配列から共通する値を探す方法(C#)

最近仕事で作っているアプリで「2つの配列から共通する値を探して処理する」場面があったのですが意外とはまってしまいました。慣れてくるとなんてことはないので他のList配列の処理方法と一緒に今後の為にメモ。2つの配列から共通する値を探す方法。配列…

【Unity】Androidアプリビルド時にライブラリの競合エラーが発生した際の対処法に関するメモ

D8: Program type already present: android.arch.core.internal.SafeIterableMap Unityで作ったアプリに広告SDKをいれたらAndroidアプリビルド時に上記のようなエラーでビルド出来ない状態になってしまいました。エラー内容や変更点から考えるとSDK追加時に…

【Android】アルファ版をリリースする場合に登録しなきゃいけない項目まとめ

Unityで作ったアプリのAndroid版をアルファ版としてリリースしようとしたのですが、アルファ版をリリースする場合でも登録しなきゃいけない項目が結構あったので備忘録として残しておきます。Androidアプリをアルファ版として公開するためにGoogle Play Cons…

【Unity】CodelessIAPは結構罠が多いから自分でスクリプト書いた方が確実で速いと思うよ

最近Unityでアプリ内課金を実装するために「CodelessIAP」を使ってみました。簡単に実装できそうということで試してみましたが、結構罠があるので注意が必要そうです。今回はUnityのCodelessIAPでアプリ内課金を実装した感想、つまづきポイントをまとめてお…

【Unity】Android版の64bit対応でやるべきこと

Googleによると2019年8月1日以降、Google Playで公開するアプリには64bit対応が必須になるそうです。最近Google Playにアップしたアプリでも、64bit対応を勧める警告が表示されるようになってしまったので、今のうちに対応しておくことにしました。今回は、U…

UnityのIAPでGoogleの公開鍵(ライセンスキー)が登録できない場合の対処法

Unityのアプリ内課金機能(Unity IAP)を実装中なのですが、Unity上でGoogleの公開鍵(ライセンスキー)を登録しようとしたけどエラーが出て登録できない状況に陥ったので今後の為にメモ。Unity IAPで公開鍵(ライセンスキー)が登録できない。UnityのIAPの…

【Unity】iOS版をシミュレーターで動作確認したい場合にやるべきこと

この前、Unityで作ったアプリで特定の端末のレイアウト崩れが起きていないか確認したい状況がありました。Unityで画面サイズを確認したい端末と同じにすれば大体は確認できるのですが、ステータスバーの表示を含めたレイアウトを確認したかったので、手元な…

【Unity】数値を文字列にする際、桁数を合わせる方法

Unityで数値を文字列にする場合、ToStringで桁数指定すると便利だという事に気づいたのでメモ。数値を文字に変換する場合、1と10など桁数が違う数値も桁数を合わせたいって時がありました。 例を出すと下記のような感じです。10以下の場合、iが1桁になってし…

【Unity】www.EscapeURLを使わないでテキストをURLエンコードする方法

Unityアプリ開発でテキストをURLエンコードする方法としてネットでよくみるのが「www.EscapeURL」を使う方法ですが、「www.EscapeURL」は廃止になるらしいので、別の方法でURLエンコードする方法について調べてみました。例として、Twitterでテキストを簡単…

【Unity】端末のステータスバー(時刻・電池残量)を表示する方法(iOS・Android)

Unityでアプリ開発の仕事をしていて、 お客さんからステータスバー(時刻・電池残量)を表示して欲しいという要望がありました。 Unityで1年くらい開発していますが、ステータスバーの表示はしたことがなく、 そもそもUnityでステータスバーの表示できるのか…

【Unity】iPhoneX、iPhoneXSなどの縦長系の端末かを判定する方法

Unityを使ってアプリを開発するようになってから約1年くらい経ちましたが、 Unityでアプリを開発する上で地味に厄介なのが、iPhoneXなどの縦に細長い系の端末です。iOSもAndroidも最近まではある程度画面の縦横比をそこまで考慮しなくてよかったのですが、iP…

【Unity】Androidプラグイン作成時にClassNotFoundExceptionが発生した場合の対処法

UnityのAndroidプラグインを作成中に発生したエラーに関するメモ。 UnityのAndroidプラグイン作成時にClassNotFoundExceptionが発生 marunouchi-tech.i-studio.co.jp qiita.com smartgames.hatenablog.com 上記の記事を参考にUnityのAndroidプラグインを作成…

【Unity】複数のボタンに順番に番号を振る方法

少し前に「Unityで大量のボタンにコードでクリックイベントを追加する方法」を書いたのですが、仕事で「複数のボタンに順番に番号を振る」っていうこともやらなきゃいけなかったのでメモとして残しておきます。まず最初に思いついたのが、それぞれのボタンに…

【Unity】簡易的なタイマーを実装する方法

Unityでゲームアプリを作る際、使用頻度の高い「タイマー」機能の実装方法に関するメモ。タイマーの仕様としては以下とします。・シーン表示直後にタイマー開始・何分・何秒を表示する

【Unity】ボタンのクリックイベント をコードから追加する方法

Unityで画面に設置したボタンのクリックイベントをコードから追加する方法についてのメモ。今までは「Hierarchy」からボタンを選択して、OnClickにボタンを押した時のメソッドを追加していました。これでも、いいっちゃいいし、今までこれでやってきていたの…

【Unity】ボタンやゲームオブジェクトを中央寄せで均等に配置する方法

Unityでゲームステージ選択画面の今現在のページがわかる「インジケーター」的なものを自作しようとした際に「ゲームオブジェクトを中央寄せで均等に配置」する場面があったのでメモ。やりたかったこととしては真ん中を中心にオブジェクトを横に均等に配置し…

「java コマンドラインツールを使用するには、JDKをインストールする必要があります」と表示された場合の対処法

先日、MacでUnityを起動したら、「java コマンドラインツールを使用するには、JDKをインストールする必要があります。」と表示されるようになりました。今回は、この対処法についてのメモです。

【Unity】画像(テクスチャ)の圧縮設定を変更して消費メモリやアプリの容量を減らす方法(iOS)

Unityでは、テクスチャ(画像)の圧縮設定を変更することで、消費メモリや、アプリ全体の容量を減らすことができるらしいという噂を耳にしたので、実際にUnityでテクスチャの圧縮設定を変更して、どのような効果があるのか調べてみました。テクスチャの圧縮…

【Unity】オブジェクトに指(マウス)を乗せたかを検知する方法

Unityを使ったアプリ開発の仕事で育成ゲームによくあるような「指でこすってアイテムをたくさん収穫する」ような機能を実装することになりました。その際、オブジェクトに指を乗せたか検知する必要があったので、今回は、「オブジェクトに指を乗せたかどうか…

【Unity】Sliderのつまみを消す方法

Unityで画面ロードの進捗状況をSliderを使って表現しようと思ったのですが、Unityで使えるSliderにはデフォルトでつまみがついており、そのままだとそれっぽくないです..どうにかSliderのつまみを削除したいと思って調べて見たら、削除する方法があったので…

【Unity】画面遷移させようとした時に「build settings or the AssetBundle has not been loaded.」のエラーが出る場合の対処法

Unityでトップ画面からゲーム画面へ遷移させようとした時に下記のようなエラーが発生してしまいました。Scene 'GameScene' couldn't be loaded because it has not been added to the build settings or the AssetBundle has not been loaded.To add a scene…