概要
using UnityEngine; public class TestClass : MonoBehaviour { private void Start() { var path = "AssetBundles/materials.bundle"; var assetBundle = AssetBundle.LoadFromFile( path ); Debug.Log( assetBundle.LoadAsset( "Assets/material 1.mat" ) ); Debug.Log( assetBundle.LoadAsset( "material 1" ) ); Debug.Log( assetBundle.LoadAsset( "material 1.mat" ) ); } }
普通にアセットバンドルをビルドした場合は、アセットバンドルからアセットを読み込む時に
- フルパス
- ファイル名
- ファイル名(拡張子つき)
のいずれかを指定できますが、
using System.IO; using UnityEditor; public static class Example { [MenuItem( "Tools/Build Asset Bundles" )] private static void BuildAssetBundles() { var outputPath = "AssetBundles"; Directory.CreateDirectory( outputPath ); var options = BuildAssetBundleOptions.DisableLoadAssetByFileName | BuildAssetBundleOptions.DisableLoadAssetByFileNameWithExtension; BuildPipeline.BuildAssetBundles ( outputPath: outputPath, assetBundleOptions: options, targetPlatform: BuildTarget.StandaloneWindows ); } }
assetBundleOptions に BuildAssetBundleOptions.DisableLoadAssetByFileName や
BuildAssetBundleOptions.DisableLoadAssetByFileNameWithExtension を指定すると
「ファイル名」や「ファイル名(拡張子つき)」ではアセットを読み込めなくなる代わりに
アセットバンドルのランタイムメモリが節約され、読み込みのパフォーマンスが改善します