コガネブログ

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

2020-05-22から1日間の記事一覧

【ReSharper】暗黙的に使用されていることを示す「UsedImplicitly」属性

概要 using JetBrains.Annotations; [UsedImplicitly] public class Example { } UsedImplicitly 属性が適用すると、そのシンボルが リフレクションなどで暗黙的に使用されていることを示すことができます

【Visual Studio】クラスや関数の定義の間に区切り線を表示する方法

概要 Visual Studio オプションの「テキスト エディター > C# > 詳細設定」から 「プロシージャ行の区切り記号を表示する」をオフにすることで 区切り線が表示されるようになります

【Visual Studio】region やクラス、関数などの折りたたみを無効化する方法

概要 Visual Studio オプションの「テキスト エディター > C# > 詳細設定」から 「ファイルを開くときにアウトラインモードに入る」をオフにすることで ファイルを開いた時に regin やクラス、関数などの折りたたみが すべて開いた状態になります また、折り…

【Unity】ContentSizeFitter の FitMode をデフォルトで Preferred Size にする Preset

概要 ContentSizeFitter の FitMode を Preferred Size にした状態で プリセットのメニューを開いて 「Save current to...」ボタンを押して適当なフォルダに保存して 保存した Preset を選択して「Add to ContentSizeFitter default」ボタンを押すと Content…

【Unity】フォルダの作成関連のエディタ拡張の機能

概要 using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // フォルダが存在するかどうか if ( !AssetDatabase.IsValidFolder( "Assets/Hoge" ) ) { // フォルダを作成 AssetDatabase.CreateFolder…

【Unity】AssetDatabase.CreateAsset で時間がかかる時に高速化できるかもしれない「AssetDatabase.StartAssetEditing」

概要 using UnityEditor; using UnityEngine; using Debug = UnityEngine.Debug; public class Example : AssetPostprocessor { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var count = 100; var shader = Shader.Find( "Sprites/Diffuse" );…

【Unity】Unity 起動後にインポートされたアセットの数の取得などができる「AssetDatabaseExperimental」

使用例 using UnityEditor; using UnityEditor.Experimental; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var imported = AssetDatabaseExperimental.counters.import.imported; var total…

【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…

【雑記】Google スライドで使えるカッコいいテンプレート「Azusa 3」

リンク

【Unity】親オブジェクトが子オブジェクトをすべて内包するように親オブジェクトの位置とサイズを調整するエディタ拡張「UniParentRectTransformFitter」を GitHub に公開しました

リポジトリ 使い方 Inspector で RectTransform の項目を右クリックして「Fit Children」を選択します Undo に対応しています 孫オブジェクトに対応しています Scale に対応しています