2020-03-19から1日間の記事一覧
はじめに Unity 初心者向けの技術書「Unityで作る2Dアクションゲーム」を BOOTH で販売開始しました 商品ページ:https://baba-s.booth.pm/items/1883344 完成プロジェクト:https://github.com/baba-s/techbook-unity-2d-action-game 本書で作成するゲーム …
ソースコード public static class Utils { public static IReadOnlyList<string> List { get; } = new [] { "abstract", "as", "base", "bool", "break", "byte", "case", "catch", "char", "checked", "class", "const", "continue", "decimal", "default", "deleg</string>…
ソースコード public static class Utils { public static IReadOnlyList<string> List { get; } = new [] { "abstract", "as", "base", "bool", "break", "byte", "case", "catch", "char", "checked", "class", "const", "continue", "decimal", "default", "deleg</string>…
ソースコード 使用例 [MenuItem( "Addressable/全ラベルをクリップボードにコピー" )] private static void CopyAllLabelToClipboard() { var labels = AddressableUtils.GetAllLabel(); var text = string.Join( "\n", labels ); EditorGUIUtility.systemCo…
概要 [RuntimeInitializeOnLoadMethod( RuntimeInitializeLoadType.SubsystemRegistration )] private static void InitAddressable() { Addressables.InitializeAsync().Completed += handle => Debug.Log( handle.Status ); } 上記のように RuntimeInitial…
概要 #if UNITY_EDITOR var guidList = UnityEditor.AssetDatabase.FindAssets( "t:AddressableAssetSettings" ); var guid = guidList.FirstOrDefault(); var path = UnityEditor.AssetDatabase.GUIDToAssetPath( guid ); var settings = UnityEditor.Asset…
ソースコード 使用例 [MenuItem( "Addressable/ダウンロードしたアセットバンドルのキャッシュのフォルダを開く" )] private static void OpenDownloadCacheFolder() { var path = AddressableUtils.GetDownloadCacheFolderPath(); Debug.Log( $"ダウンロー…
概要 Error while downloading Asset Bundle: CRC Mismatch. Provided XXXXXXXX, calculated YYYYYYYY from data. Will not load AssetBundle 'http://ZZZZZZZZ' Addressable Asset System で上記のエラーに遭遇することがあった リモートカタログが正しく読…
ソースコード 使用例 [MenuItem( "Addressable/全グループ名をクリップボードにコピー" )] private static void CopyAllGroupNameToClipboard() { var groupNames = AddressableUtils.GetAllGroupName(); var text = string.Join( "\n", groupNames ); Edito…
ソースコード 使用例 [MenuItem( "Addressable/全アドレスをクリップボードにコピー" )] private static void CopyAllAddressToClipboard() { var addresses = AddressableUtils.GetAllAddress(); var text = string.Join( "\n", addresses ); EditorGUIUtil…
概要 通信処理に進む前に弾かれる AssetBundle Provider の処理まで進まないので 通信処理が走らないようになっている LoadAssetAsync 関数の中で下記のように処理が行われている m_ResourceLocators に登録されているアドレスやラベルなら ResourceManager.…
概要 Addressables.LoadContentCatalogAsync の引数に渡すパスは絶対パスや URL など // 例1 var url = @"【Unity プロジェクト】\ServerData\StandaloneWindows64\catalog_1.0.0.json"; var handle = Addressables.LoadContentCatalogAsync( url ); // 例2 …
概要 Addressables.LoadResourceLocationsAsync( address ).Completed += handle => { var isSuccess = handle.Status == AsyncOperationStatus.Succeeded && handle.Result != null && 1 <= handle.Result.Count ; .... }; LoadResourceLocationsAsync は通…
概要 Addressable Asset System は初期化用の関数を呼び出さなくても Addressables クラスのいずれかの関数を呼び出したタイミングで自動で初期化してくれる 内部で AddressableAssets.ChainOperation で自動で初期化してくれる 任意のタイミングで初期化し…
概要 【Unity プロジェクト】/Library/com.unity.addressables/StreamingAssetsCopy/ 以下のアセットは、アプリビルド時に 【Unity プロジェクト】/Assets/StreamingAssets フォルダに自動で追加される 上記の処理は「AddressablesPlayerBuildProcessor.cs」…
概要 すべてのグループを削除してから再度グループを作成して 設定を変更してビルドしたら反映された 関連記事
概要 Addressables.InternalIdTransformFunc = location => { var internalId = location.InternalId; // アセットバンドルではない場合は internalId をそのまま返す if ( location.ResourceType != typeof( IAssetBundleResource ) ) { return internalId;…
概要 var key = "【アドレスかラベル】"; var handle = Addressables.DownloadDependenciesAsync( key, true ); handle.Completed += _ => Debug.Log( "完了" ); Addressables.DownloadDependenciesAsync を使用する 第2引数に true を渡すとアセットバンド…
概要 using System; using System.Diagnostics; using UnityEditor; using UnityEngine; using Debug = UnityEngine.Debug; public static class Tools { [MenuItem( "Tool/Hoge" )] private static void Hoge() { var folderType = Environment.SpecialFold…
ソースコード 使用例 using System; using UnityEngine; public class Character : IDisposable { public void Dispose() { Debug.Log( "ピカチュウ" ); } } public class Example : MonoBehaviour { private void Start() { var character = new Character(…
概要 AddressableAssetSettings.CleanPlayerContent(); BuildCache.PurgeCache( false ); AddressableAssetSettings.CleanPlayerContent を呼ぶだけだと ビルドのキャッシュは完全に消えない BuildCache.PurgeCache を呼ぶと Library/BuildCache フォルダが…
概要 【Unity プロジェクト】/Library/BuildCache Addressables Goups ウィンドウの 「Build > Clean Build > All」で削除されるのはこのフォルダ
概要 var handle = Addressables.GetDownloadSizeAsync( address ); handle.Completed += _ => Debug.Log( handle.Result ); Addressables.GetDownloadSizeAsync を使用することで ダウンロード対象のアセットバンドルの容量を取得できる ダウンロード対象の…
概要 使用例 using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { AddressableUtils.RemoveAllEmptyGroupWithoutDefault(); } }
概要 使用例 using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] public static void Hoge() { // グループを名前でソートします AddressableUtils.SortGroups(); // AddressableAssetsWindow の描画を更新します AddressableUti…
概要 using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] public static void Hoge() { var assembly = typeof( EditorApplication ).Assembly; var windowTypeName = "UnityEditor.InspectorWindow"; var wi…
using System.Reflection; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] public static void Repaint() { const BindingFlags attr = BindingFlags.Instance | BindingFlags.Public | BindingFlags.Non…
ソースコード using System; using System.Collections.Generic; using System.Linq; public static class IEnumerableExt { public static IEnumerable<TKey> GetDuplication<TKey, TSource> ( this IEnumerable<TSource> self, Func<TSource, TKey> keySelector ) { return self .GroupBy( keySelector )</tsource,></tsource></tkey,></tkey>…
概要 使用例 using NUnit.Framework; using System.Linq; using System.Text; public static class Example { [Test] public static void CheckDuplicateAddress() { var list = AddressableUtils .GetDuplicateAddress() .ToArray() ; var isExist = list.A…
スライド