Unity
Unity6で新規URPプロジェクトを作ると、ビルド時間がやけに長く、 ログを見るとシェーダーコンパイルが遅くなっていることが分かります。 (以下、実測結果はM1 Max MacBook Proによるもの) Unity2021LTS(2021.3.43f1)、Unity2022LTS(2022.3.47f1)、Unity6(…
OnPostprocessBuildなどで.appの中身を直接いじると署名が無効になり壊れる。 public void OnPostprocessBuild(BuildReport report) { // ごにょごにょ #if UNITY_STANDALONE_OSX UnityEditor.OSXStandalone.MacOSCodeSigning.CodeSignAppBundle(report.summ…
Unity6から使えるMultiplayer Play Modeという公式パッケージがあります。 Editor上のプレイボタンを押すと最大3つのプレイヤーが自動で立ち上がり(Editor本体を入れて4つ)、 マルチプレイゲームのデバッグが簡単にできる!という非常に便利なパッケージで…
github.com 4年前に公開したこのアプリアイコンを動的に変更できるパッケージ、 たまに「OSのダイアログ(↓の画像のやつ)消せないの?」という問い合わせが来てました。 その時の返信は、 「わかる。邪魔だよね。でもOS側で出してるやつだからどうしようも…
Unity Editorから同じネットワーク上にいるデバイスのプレイヤーにデータを送る https://t.co/fnpTJV1L9n #きゅぶろぐ pic.twitter.com/6Qcy58acdZ— きゅぶんず (@kyubuns) March 3, 2024 UnityEditor.Networking.PlayerConnection.EditorConnection とかい…
具体的に言うと、 C:/Users/{UserName}/AppData/Local/{GameTitle}/Save/{SteamID}/ というディレクトリ以下にファイルを置いていくのが理想系かなと思います。 LocalがLocalLowだったり、Saveの部分が違ったりするのは趣味の範囲。 伝えたいことは、 セーブ…
github.com このパッケージをインポートするだけで、画面右下の "Development Build "の表示が消すことができます。 以下のような使用用途が考えられます。 デバッグコマンドを使って、PVの撮影や、アプリストア用のスクリーンショットが気軽に撮れる。 ゲー…
AppIconChangerUnity では、OnPostprocessBuildでRenderTextureを使用してアイコンの拡縮を行なっていました。 しかし、アイコンが灰色になるというissueが上がってきたため調査をしていたところ、 Unity -quit -batchmode -projectPath . -executeMethod Bu…
何が起きてるの? 以下の画像のように "Allowed Orientations for Auto Rotation" を設定しているにも関わらず、 iOS 16(iPadOS 16も言わずもがな)上で、許可されていない方向でアプリが起動してしまう問題が発生しています。 再現方法 このバグは安定的に…
iOS/AndroidではUnityIAPを使っているけれど、Windowsでは使用していない。 それにも関わらず、UnityIAPが有効になっていると勝手にUnity Analyticsも有効になり気持ち悪いから Windowsビルドの時だけパッケージ依存を削除したい・・・みたいなことあります…
これはゲーム開発者向けの記事です。 プレイヤーの方で対応方法を探している場合は[SteamDeck Proton GE]などでググってください。 症状 Winows上では、正しく動画が再生されている。 SteamDeck上で再生しようとすると、動画の代わりにカラーバーが表示され…
まえがき ゲーム開発中、何かちょっと変えるたびに、何度も何度も同じ場面まで行って確認するのは面倒ですよね。 現在のシーンの状態を丸っと保存して、そこから再開できる「どこでもセーブ」機能を実現してみました。 Unityで「どこでもセーブ/どこでもロー…
Console Windowを大幅に改造してるプロジェクトも多いと思いますが、 気軽にちょっとだけ見やすくしたいこともありますよね。 完成形がこちら。 見た目の特徴 カテゴリ毎に色の違う■が出てて、カテゴリの認識がしやすい パラメーターが読みやすい 書き方の特…
github.com Unityでも便利なLINQメソッドを色々使いたかったのでExtraLINQをUPM対応しましたから早一年。 この1年で増えたメソッドを紹介します。 TryGetFirst / TryGetLast DictionaryのTryGetValueっぽく使いたい時に。 if (items.TryGetFirst(x => x.Valu…
Unity2021もLTSがでたので安心して使えますね。・・・使えてますか? それはそれとして、 Unity2021から追加された EditorUserBuildSettings.il2CppCodeGeneration を適切に設定するとビルドが最大50%早くなるというお話です。 使い方 EditorUserBuildSettin…
QualitySettingsからvSyncをDon't Syncsに設定していても(無視される値にも関わらず)意味がないので、必ずスクリプトから QualitySettings.vSyncCount = 0; する必要がある。 Unity Issue Tracker - [Android] Application.targetFrameRate doesn't wo…
実機上でエラーが発生した時、どうやってデバッグしていますか? AbcConsoleを使っていると、たったこれだけで、 エラーを検知した時(Debug.LogError/LogExceptionが呼ばれた時)に、slackにログを送信できます! slackのtoken取得はこちらのブログなどを参…
この記事は、2022/03/26時点での情報です。 2022/03現在、Application.persistentDataPathのドキュメントは、 Unity2020.3 https://docs.unity3d.com/ja/2020.3/ScriptReference/Application-persistentDataPath.html Unity2022.1 https://docs.unity3d.com/…
EditorPrefsを気軽に使いたいけど、 UnityEditor.EditorPrefsのためだけにdefine書いたり、 そもそもstringしかダメだから一回シリアライズするのも面倒だな・・・って時のために、 EditorPrefsWrapperを作ったのでメモ。 使い方 MessagePack-CSharpに依存し…
github.com AlternateIconについて 基本的にiOSアプリのアイコンは埋め込みで、アプリを更新しない限りアイコンの変更は出来ませんでしたが、 アイコンを埋め込んでおきさえすればアプリ内から変更できる、というのがAlternateIconです。 最近では、デレステ…
2021年の今でも [Unity URL scheme parameter] とかでググると、このプラグインを入れて・・・とかいう記事がたくさん引っかかるんですが、 Unity2019.2以降であれば、 Application.absoluteURL で起動時のURLを取得することが出来ます。 iOSもAndroidも同様…
これは反省文です。 これらの問題に開発終盤に気づくと、影響範囲が広くなりがちです。 知識として入れておきましょう。 Time.time どんなチュートリアルにも最初の方に出てくる、言わずと知れた経過時間を取得する方法。 超基本的なものだと思って、気軽に…
metaファイルのコミットし忘れ or 再起動しただけでmetaに変更が入る状況になっていないかをチェックする。 方法は色々あると思うんですが、結局Unity起動してちゃんとビルド出来るかのチェックとか走らせているので Unityを起動した後に、metaファイルが増…
github.com 前々から愛用していたmariusschulz/ExtraLINQ。 例えばChunkとか、 int[] numbers = { 1, 2, 3, 4, 5, 6, 7 }; int[][] chunks = numbers.Chunk(3); // chunks = [[1, 2, 3], [4, 5, 6], [7]] Flattenとか、 int[][] numbers = { new[] { 1, 2, 3…
Bundle Naming Modeを"Filename"とかにしていれば出力したファイルを見れば良いだけなのですが、 "Use Hash of Filename"等を使っていると、どのファイルがどのAssetか見分けが付かなくなるので、どうにかしました。 var results = new List<(string, long)>…
AddressableでBundle Naming Modeを"Use Hash of Filename"にしている時に生成されるファイル名を算出する方法です。 そのファイル名で実際にアクセス出来ることのテストとして、ファイルサイズの出力をしてみています。 var groupName = assetGroup.Name.Re…
AudioMixerのAudio Mixer Suspendにチェックが入っていると、最初の音の頭がちょっと切れる。 最初から使うならチェックを外す。
ただの備忘録。 定義 public static class AddressableAssets { public static class Bgm { public const string Test1 = "Bgm/TestBgm1"; public const string Test2 = "Bgm/TestBgm2"; public const string Test3 = "Bgm/TestBgm3"; } } 使うところ Addres…