コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】SpriteAtlas と TexturePacker の比較メモ

インポート時間の比較 約1,000個のスプライトを直接 Unity プロジェクトに追加した場合と 事前に TexturePacker でアトラス化して Unity プロジェクトに追加した場合の インポート時間の比較 項目 インポート時間 非アトラス化 75秒 アトラス化 34秒 アトラ…

【Unity】Addressable Asset System でカタログがビルドされている箇所、ランタイムで読み込まれている箇所

リモートカタログがビルドされている箇所 BuildScriptPackedMode.cs CreateRemoteCatalog 関数 WriteFile(remoteJsonBuildPath, jsonText, builderInput.Registry); ローカルカタログがビルドされている箇所 BuildScriptPackedMode.cs CreateCatalogFiles 関…

【Unity】Addressable Asset System で BuildScriptBase を継承したインスタンスを Addressable Groups の Build メニューに追加する方法

概要 BuildScriptBase.CanBuildData 関数をオーバーライドして true を返す Addressable Groups の Build メニューは下記のように生成されている AddressableAssetsSettingsGroupEditor.cs 181行目辺り var menu = new GenericMenu(); for (int i = 0; i < s…

【Visual Studio】ソリューションエクスプローラーのすべての階層を折りたたむ方法

概要 ソリューションエクスプローラーの赤枠のアイコンを押す

【Visual Studio】「行の終わりの不整合」ダイアログを常に表示するかどうかを設定する方法

概要 上記の「行の終わりの不整合」ダイアログを常に表示するかどうかは Visual Studio メニューの「ツール > オプション」から 左メニューの「環境 > ドキュメント」を選択して 「読み込み時に行の終わりの整合性を確認する」を変更することで設定できます

【Unity】Addressable Asset System ですべてのラベルを取得する方法

概要 using UnityEditor; using UnityEditor.AddressableAssets; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var settings = AddressableAssetSettingsDefaultObject.Settings; var labels…

【Unity】Menu XXXX can't be checked because it doesn't exist

概要 using UnityEditor; [InitializeOnLoad] public static class Example { private const string ITEM_NAME = "Tools/Hoge"; static Example() { Menu.SetChecked( ITEM_NAME, true ); } [MenuItem( ITEM_NAME )] private static void Hoge() { } } Initi…

【Unity】Cache Server にすべてのアセットをアップロードするメニュー

概要 Unity メニューの「Assets > Cache Server > Upload All Assets」を押して 表示されたウィンドウで Cache Server の IP アドレスを入力して「Upload」を押す

【Unity】Addressable Asset System で差分ビルドが必要なエントリを取得する方法

概要 using UnityEditor; using UnityEditor.AddressableAssets; using UnityEditor.AddressableAssets.Build; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var settings = AddressableAsse…

【Unity】Addressable Asset System で Unity を再生した時やアセットバンドルをビルドした時に呼び出されるコールバック

概要 using UnityEditor; using UnityEditor.AddressableAssets.Build; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { BuildScript.buildCompleted += OnBuildCompleted; } private static void OnBuildComplete…

【Unity】Package Manager でビルトインパッケージを無効化する方法

概要 Package Manager のプルダウンメニューから「Built-in packages」を選択すると Unity プロジェクトで有効になっているビルトインパッケージが閲覧でき、 それぞれのパッケージの有効化・無効化もできる (manifest.json の mudules 系の行を削除するこ…

【Unity】Addressable Asset System が依存している Unity Package

概要 com.unity.scriptablebuildpipeline com.unity.test-framework

【Unity】Unity プロジェクトに独自のデータを保存できる「EditorUserSettings.SetConfigValue」

概要 using System; using UnityEditor; using UnityEngine; [Serializable] public sealed class Data { public int Id; public string Name; } public sealed class Example : EditorWindow { [MenuItem( "Tools/Open" )] private static void Open() { Ge…

【Unity】エディタが起動している間データを保持できる「ScriptableSingleton」

概要 using UnityEditor; public sealed class Data : ScriptableSingleton<Data> { public int Id; public string Name; } public sealed class Example : EditorWindow { [MenuItem( "Tools/Open" )] private static void Open() { GetWindow<Example>(); } private void </example></data>…

【Unity】スプライトをアトラス化する前とした後の Build Report の差

はじめに Unity プロジェクトに 382.7 KB のスプライトを5つ追加して SpriteAtlas でパッキングしなかった場合とした場合で Build Report にどのように差が出るか アトラス化前 Textures 1.5 mb 9.1% 384.4 kb 0.8% Assets/Sprites/f005.png 384.4 kb 0.8% A…