Unity/AssetBundle/AssetBundle作り方
提供: 初心者エンジニアの簡易メモ
目次
スクリプトでのAssetBundleの作り方
- 適当なファイル(例:user.csv)を作る
- "user.csv"のファイルを選択し、inspector下のAssetBundleに"user.csv"を入れる。
UnityEditorでビルド実行
公式:https://docs.unity3d.com/jp/460/ScriptReference/BuildPipeline.BuildAssetBundle.html
Assets/Editor/ExportAssetBundles.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; public class ExportAssetBundles { [MenuItem("Tools/Build AssetBundle")] static void ExportResource() { BuildPipeline.BuildAssetBundles( "AssetBundleExport", BuildAssetBundleOptions.None, BuildTarget.WebGL ); } }
- AssetBundleExportのディレクトリを作成しておく
- Unityメインメニュー/Tools/Build AssetBundleを実行
- AssetBundleExportの下にファイル(例:user、user.manifest)が出来る
doesn't existエラーが出るとき
以下のようなエラーが出るとき
ArgumentException: The output path "AssetBundleExport" doesn't exist
出力ディレクトリを、予め作っておく。
Unrecognized assets cannot エラーが出る場合
以下エラーが出る
Unrecognized assets cannot be included in AssetBundles: "Assets/user".
追加したファイルに拡張子が、ないかもしれないので、拡張子をつける。userだったら、user.csvとかuser.txtとか
Dir内のファイルを削除したいときは以下実行
FileUtil.DeleteDirFile("");
using System.IO; public class FileUtil { public static void DeleteDirFile(string targetDirectoryPath) { if (!Directory.Exists(targetDirectoryPath)) { return; } string[] filePaths = Directory.GetFiles(targetDirectoryPath); foreach (string filePath in filePaths) { File.SetAttributes(filePath, FileAttributes.Normal); File.Delete(filePath); } string[] directoryPaths = Directory.GetDirectories(targetDirectoryPath); foreach (string directoryPath in directoryPaths) { DeleteDirFile(directoryPath); } } }
参考:https://kan-kikuchi.hatenablog.com/entry/DirectoryProcessor