コガネブログ

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

【Unity】ダウンロードするアセットバンドルの容量を取得する方法

概要 var webRequest = UnityWebRequestAssetBundle.GetAssetBundle( url, hash, crc ); ... var header = webRequest.GetResponseHeader( "Content-Length" ); ulong.TryParse( header, out var bytes ); Debug.Log( bytes ); 上記のようなコードを記述する

【Unity】アセットバンドルダウンロード時に現在ダウンロードが完了した容量(バイト数)を取得する方法

概要 var webRequest = UnityWebRequestAssetBundle.GetAssetBundle( url, hash, crc ); ... Debug.Log( webRequest.downloadedBytes ); UnityWebRequest.downloadedBytes を参照する

【Unity】Dropbox からアセットバンドルをダウンロードしてくる場合の URL

概要 URL 末尾の ?dl=0 を ?dl=1 に変更する 参考サイト様

【Unity】Caching.IsVersionCached が常に false を返す状況に遭遇した

概要 // ここだとキャッシュが存在する場合 true が返ってくる Debug.Log( Caching.IsVersionCached( url, hash ) ); var webRequest = UnityWebRequestAssetBundle.GetAssetBundle( m_url, m_hash, m_crc ); var requestOperation = webRequest.SendWebRequ…

【Unity】Addressable Asset System 1.7.4 Changelog

概要 建物カタログデータの速度が向上しました。 サブオブジェクトの処理に関連するさまざまなマイナーな最適化。 ビルドプロセスのカタログ生成部分にプログレスバーを追加しました。 初期化オブジェクトに非同期初期化APIを提供します。 CacheInitializati…

【Unity】Unity プロジェクト起動時に毎回 API Update Required が表示される場合

はじめに Unity プロジェクトを開いていない状態で Assembly-CSharp-firstpass.csproj に含まれているスクリプトが変更されると 次に Unity プロジェクトを開こうとする時に API Update Required が表示される状態だった 解決方法 Assembly-CSharp-firstpass…

【Unity】Addressable Asset System を使用しているプロジェクトで従来のアセットバンドル名の仕組みを使用していると表示される警告

概要 Legacy Bundles Detected We have detected the use of legacy bundles in this project. Would you like to auto-convert those into Addressables? This will take each asset bundle you have defined (we have detected X bundles), create an Addr…

【Unity】Addressable Asset System でアドレスが重複している状態でアセットバンドルをビルドした時に出力されたエラー

概要 ArgumentException: An item with the same key has already been added. Key: 【GUID】 エラーログに出力された GUID からアセットを調べてみたところ、 そのアセットのアドレスが二重に登録されている状態だった 二重に登録されているアドレスをすべ…

【Unity】「Generate all .csproj files.」をオンにしていても .csproj が生成されない場合

概要 下記のことを試していたら生成されるようになった Visual Studio を閉じる Unity メニューの「Edit > Preferences...」を選択する 「External Tools」の「Generate all .csproj files.」をオフにしてからオンにする Project ビューで C# スクリプトをダ…

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