技術と趣味の亜空間

主にゲームプログラミングとその周辺に関する記事を不定期で上げていきます

Unity

【Unity】エクセルのマスタデータ変換ツールを作ったときの備忘録

概要 過去にUnityでスタンドアロンなエクセルのマスタデータ変換ツールを作ったときの備忘録。

【Unity】TextMeshProは将来的にレガシーに移行? 今後はTextCoreが主流に?

概要 UnityエンジンのTextコンポーネントに取って代わり、高品質な表現が可能であっという間に主流になり、最終的にUnity公式プラグインとして組み込まれたTextMesh Proですが、どうやら中の人の異動を契機にTextCoreというコアエンジンモジュールへと将来的…

TextMeshProをAddressablesに対応させる

概要 TextMeshProのフォントデータやシェーダといったリソース関係は "Essential Resources" としてローカルフォルダに設置しますが、このフォルダがResourcesフォルダであるため、Addressable 化するには Resources フォルダから外してやる必要があります。…

【iOS実機エラー】Library not loaded: @rpath/OneSignalCore.framework/OneSignalCore

概要 UnityのOneSignal SDK を 3.0.9 にアップデートしてiOSの実機ビルドしたら起動直後にクラッシュが発生。 ログを取ってみると、表題のエラーが発生していた。 なお、本件はiOSのみで発生しAndroidでは問題なかった。 エラーログ 2023-02-22 14:49:42.993…

【Addressables】warning: yield SceneInstance is not supported on await IEnumerator or IEnumerator.ToUniTask(), please use ToUniTask(MonoBehaviour coroutineRunner) instead.

概要 Addressablesを導入し、シーン読み込みをUnitySceneManager.UnloadSceneAsyncからAddressables.UnloadSceneAsyncに差し替えた時に発生。 これによりシーン内の一部スクリプトが実行時にMissingになるなどの問題が発生した。 docs.unity3d.com 実行環境…

【Unity】ArgumentNullException: Value cannot be null. Parameter name: path1

Unityで起きたとあるAndroidビルドエラーとその解決方法を共有。

【Unity】Adjust SDKを更新したら計測できなくなったのを修正した

概要 Android API 31 に引き上げる対応に合わせてUnityのAdjust SDKをVersion 4.32.1に更新してリリースしたところ、 Adjust上でASAのCVがうまく計測できなくなってしまった。 環境 Unity 2021.3.3f1 Adjust SDK Version

【Unity】Android 13 (API 33) のプッシュ通知周りの許諾対応

概要 Android 13 (API 33) からはプッシュ通知周りの設定に変更が入ります。 具体的にはセキュリティ周りが厳しくなり、ちゃんとユーザーの許諾を得ないと通知が来ない感じになります。 developer.android.com

注意!モバイルアプリ開発にてUnity2021.3.xで回避すべきバージョン

本記事では、Unity 2021.3系列のバージョンで主にスマートフォンのモバイルアプリを開発する上でヤバ目なバグが潜んでいるものを2件紹介します。 これらのバージョンにはアップデートしないことを強く推奨します。 (今はLTSでもバージョンが12までいってい…

【バグ】GvhProjectSettings.xml が勝手に更新される

プロジェクトでExternal Dependency Manager for Unityを導入しているが、 何もしていなくても GvhProjectSettings.xml がたまに更新されることがあって地味に困っていたので調べてみたら、どうやらバグだった模様。 github.com まだ解決されていないので、…

【Unity】Firebase + Xcode13 で起動時にクラッシュする問題の対処法

2022/2/11 追記 2022年1月31日のVersion 8.8.0にて修正されました。 firebase.google.com 概要 UnityでFirebaseを入れている自分のプロジェクトをXcode13にアップグレード後、アプリをビルドすると起動時にクラッシュするようになってしまいました。 正確に…

InputFieldを押した時の入力受付状態になるタイミングをコードレスで変更する

UnityのInputFieldにて、入力欄を押してから入力状態にするタイミングをプログラミング無しで変更する方法を解説します。

画像を上から下にかけて暗くさせる簡易シェーダー

概要 Imageを上から下にかけて黒くするだけの簡単なシェーダーを作成しました。 黒くする範囲と境界線のぼかしも調整できます。 2Dキャラクターの顔を隠すとか、シルエットだけにするみたいな目的で作成しました。

AppleStoreリジェクト対策 - 外部ブラウザの起動厳禁

概要 ゲームアプリをAppleStoreの審査に提出したところ、以下のような内容でリジェクトされた。 Guideline 4.0 - Design We noticed that the user is taken to Safari to sign in with Twitter account, which provides a poor user experience. Next Steps…

【Unity】Sign in with Appleをクライアントで実装する

概要 ソシャゲのSNS連携でお馴染みのApple IDでログインできる機能「Sign in with Apple」を外部プラグインを利用してUnityで実装します。 今回はテストなのでサーバーは利用せず、クライアントでログインができるところまでとします。 ◆執筆時のUnity versi…

【TextMesh Pro】Unityで文字化けする箇所を除外する方法

概要 UnityでTextMesh Proのフォントアセットとスプライトアセットに未登録の文字列だけを除外するコードを作成しました。 上のトップ画像ではTextMehs Proデフォルトで入っているアセットデータで試しています。 Raw Textを見てみると、2行目は「日本語テキ…

ついにUnityが絵文字を公式でサポート予定に!

Unityのフォーラムを眺めていたら見つけたので投稿。 aromana said: ↑ Is the solution in this thread the best available solution for supporting emojis in text fields in Unity? In 2021 it seems like a pretty important feature especially for mob…

【Unity + Adjust】iOS14.5以降のIDFAオプトイン対応

概要 Adjustを導入している場合、iOS14.5からIDFAのオプトイン対応をしていないとリジェクト対象になります。 というわけで、Unity で Adjust を利用している場合の対処法をメモしておきます。 ◆執筆時の各環境バージョン Unity 2019.4.18f1 Adjust Unity SD…

【自作クラス対応】Inspectorの配列のラベルをEnumの名前にする【Unity】

概要 Inspectorに配列やリストを表示すると要素のラベルが「Element 0」「Element 1」...になるのをenumで置き換えるエディタ拡張です。 Serializableした自作クラスを表示する際にもちゃんと中身が表示されます。 また、そのクラス内で宣言した配列要素のラ…

Eメールアドレスのローカル部をイイ感じに隠すコード

概要 EメールをサービスでUIに表示する際にローカル部の一部を良い感じに隠してくれるコードを作成しました。 イイ感じというのは、表示する文字数の最大数と隠すのに必要な最小文字数を指定すれば、それを基に文字をどれだけ表示し、どれだけ隠すかを良しな…

スクロールバーの判定(タッチ範囲)だけ広げる【Unity】【uGUI】

概要 上図のように、UnityのuGUIで作成するスクロールバーの見た目を変えずに判定範囲だけ広げる方法を紹介します。 プログラムは一切不要です。 また、チャタリングの抑制方法も合わせて共有します。 執筆時のUnityバージョン 2019.4.1f1

CEDEC2020 おすすめセッション ~ ローカライズ編

概要 先月行われた CEDEC2020 にて個人的におすすめだったセッションを紹介します。 今回はタイトルに書かれている通り、ローカライズに関するセッションです。 CEDEC2020: 開発から運用まで - スマートフォンゲームの国際化対応における課題と解決手法 資料…

OneSignal の Unity SDK が Unity 2018 以降だとビルドで失敗するので修正した話

概要 OneSginal という超便利なプッシュ通知サービスがUnityで導入できますが、 私のプロジェクトだとiOSとAndroidのビルドどちらも失敗してしまいました。 今回はそれを修正してみました。 onesignal.com 開発環境 OneSignal-Unity-SDK 2.7.8 release Unity…

Unityで .NET 4.x にするとVisual Studio Code のC#拡張が機能しなくなったので修正した話

概要 MacのUnityで .NET 4.x 系に切り替えたところ、Visual Studio Code (以下、VSCode) のC#拡張プラグイン1が機能しなくなったので、再び利用できるようにするための修正方法を備忘録も兼ねて記載します。 修正方法 monoのバージョン5.8以上をインストール…

iPhoneX以降のセーフエリアの見栄えをエディタ上で、かつ実行せずに確認・調整できる便利クラスを作成しました

概要 UIがiPhoneX以降のセーフエリア(Safe Area)内にちゃんと収まるような調整クラスを作成しました。 とはいえ毎回端末で確認するのも嫌だったので、エディタ上で実行せずとも直接確認できる機能も追加してみました。(実行中に適応する機能もあります) こ…

.NET 4.6以降にて列挙型をキーとしたDictionaryは普通に速い

概要 列挙型(Enum)をキーとした辞書の実行速度に関して、これまでは遅いのでやめておくのが通説でしたが、 .NET4.6以降はかなり早くなっているとのことなので実際に調査してみました。

ドローコールを発生させない透明ボタンを作るための便利クラスを作ってみた

追記 2019.7.23 Unityバージョン2018.2以降だと本記事のスクリプトを使用しなくてもドローコールを発生させない処理ができるようになっております。 やり方は以下の通り: 透明ボタン用のImageコンポーネントを作成 アルファ値を0にする 同じゲームオブジェ…

コードレスuGUIテクニック② 〜複数のテキスト間の位置調整〜

概要 ちょっとタイトルだと伝わりにくいので下のGIF動画をご覧ください。 今回は動画のように、複数のテキスト間で内容の一番長い文字列に合わせて後ろのテキストを動的に変動させることを、コードを書かずにuGUIだけで実現させます。 実装時間 3分-5分

コードレスuGUIテクニック① 〜動的なテキストフレーム〜

概要 下のGIF動画のように、テキストの内容に応じて後ろのフレームを動的に変動させることを、コードを書かずにuGUIだけで実現させます。 動的なテキストフレーム 実装時間 30秒くらい

リリース用ビルドの時だけ不要なResourcesフォルダのデータを取り除くエディタ拡張を作ってみた

概要 Unity開発において、例えばデバッグ用のプレハブデータをResourcesフォルダに入れてたりする場合、リリース用ビルドでは要らないのでビルドに含めたくない、ということがあるかと思います。 本記事ではリリース用ビルドの時だけResourcesフォルダから特…