コガネブログ

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

【Unity】エディタ拡張で Profiler の情報を読み込む方法

概要 using UnityEditor; using UnityEditorInternal; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { ProfilerDriver.LoadProfile( "test.data", keepExistingData: true ); } } 現在 Profiler に表示されている…

【Unity】エディタ拡張で Profiler の情報を保存する方法

概要 using UnityEditor; using UnityEditorInternal; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { ProfilerDriver.SaveProfile( "test.data" ); } } 保存したファイルは Profiler の Load から読み込める

【Unity】Profiler の Deep Profile の ON / OFF をエディタ拡張で変更する方法

概要 using UnityEditor; using UnityEditorInternal; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { ProfilerDriver.deepProfiling = !ProfilerDriver.deepProfiling; } }

【Unity】Unity プロジェクトから指定した型のアセットをすべて取得するエディタ拡張

ソースコード 使用例 foreach ( var n in AssetDatabaseUtils.FindAssets<Texture>() ) { Debug.Log( n.name ); }</texture>

【Unity】Unity プロジェクトから指定した型のアセットを1つ取得するエディタ拡張

ソースコード 使用例 Debug.Log( AssetDatabaseUtils.FindAsset<Texture>().name );</texture>

【Unity】Addressable Asset System の AssetBundleRequestOptions でハッシュ値や CRC、ビルドサイズを取得できる

概要 public sealed class Example : IAssetBundleResource { public void Setup( ProvideHandle handle ) { var options = handle.Location.Data as AssetBundleRequestOptions; // ハッシュ値 Debug.Log( options.Hash ); // CRC 値 Debug.Log( options.Cr…

【Unity】Addressable Asset System の BundledAssetGroupSchema.AssetBundleProviderType を変更するエディタ拡張

概要 使用例 using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var group = AddressableUtils.GetOrCreateGroup( "【グループ名】" ); var bundledAssetGroupSchema = group.Schemas .OfType<BundledAssetGroupSchema>() .</bundledassetgroupschema>…

【Unity】Addressable Asset System の BundledAssetGroupSchema.BundleNaming を変更するエディタ拡張

概要 使用例 public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var group = AddressableUtils.GetOrCreateGroup( "【グループ名】" ); var bundledAssetGroupSchema = group.Schemas .OfType<BundledAssetGroupSchema>() .FirstOrDefault() ; </bundledassetgroupschema>…

【Unity】アセットバンドルがキャッシュに存在するか確認する方法

概要 ProvideHandle provideHandle = ...; AssetBundleRequestOptions options = ...; var location = provideHandle.Location; var url = location.InternalId; var hash = Hash128.Parse( options.Hash ); var isExist = Caching.IsVersionCached( url, ha…

【Fork】Stage All ボタンの場所

概要 赤枠のアイコンで Stage All(もしくは Unstage All)できる

【Unity】Addressable Asset System の設定が変更された時に呼び出されるイベント

概要 using UnityEditor; using UnityEditor.AddressableAssets.Settings; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { AddressableAssetSettings.OnModificationGlobal += OnModificationGlobal; } private s…

【Unity】Addressable Asset System の AddressableAssetEntry.SetAddress はアドレスが変更された時のみ処理が実行されるようになっている

概要 public void SetAddress(string addr, bool postEvent = true) { if (m_Address != addr) { m_Address = addr; if (string.IsNullOrEmpty(m_Address)) m_Address = AssetPath; SetDirty(AddressableAssetSettings.ModificationEvent.EntryModified, thi…

【Unity】Addressable Asset System の Play Mode Script を変更するエディタ拡張

概要 使用例 using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // デフォルトなら // 0: Use Asset Database (faster) // 1: Simulate Groups (advanced) // 2: Use Existing Build (requires bu…

【Unity】Addressable Asset System でデフォルト以外のすべてのグループを削除するエディタ拡張

概要 使用例 using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { AddressableUtils.RemoveAllGroupWithoutDefault(); } }

【Unity】Addressable Asset System でアセットやフォルダにラベルを割り当てる・解除するエディタ拡張

概要 使用例 using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // アセットにラベルを割り当てます AddressableUtils.SetLabelToAssetOrFolder ( path:"Assets/New Material.mat", label: "hoge"…