facebook twitter hatena line email

Unity/AssetBundle/AssetBundle作り方

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

スクリプトでのAssetBundleの作り方

  1. 適当なファイル(例:user.csv)を作る
  2. "user.csv"のファイルを選択し、inspector下のAssetBundleに"user.csv"を入れる。

UnityEditorでビルド実行

公式:https://docs.unity3d.com/jp/460/ScriptReference/BuildPipeline.BuildAssetBundle.html

Assets/Scripts/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
		);
	}
}
  1. AssetBundleExportのディレクトリを作成しておく
  2. Unityメインメニュー/Tools/Build AssetBundleを実行
  3. AssetBundleExportの下にファイル(例:user、user.manifest)が出来る

doesn't existエラーが出るとき

以下のようなエラーが出るとき

ArgumentException: The output path "AssetBundleExport" doesn't exist

出力ディレクトリを、予め作っておく。

コマンド実行で、Exceptionを吐く

dirが無いとか、かもしれないので確認。

Aborting batchmode due to failure:
executeMethod method ExportAssetBundles. ExportResource threw exception.

Unrecognized assets cannot エラーが出る場合

以下エラーが出る

Unrecognized assets cannot be included in AssetBundles: "Assets/user".

追加したファイルに拡張子が、ないかもしれないので、拡張子をつける。userだったら、user.csvとかuser.txtとか

Dir内のファイルを削除したいときは以下実行

FileUtil.DeleteDirFile("AssetBundleExport");

FileUtil.cs

using System.IO;
public class FileUtil
{
    public static void DeleteDirFile(string dirPath)
    {
        if (!Directory.Exists(dirPath))
        {
            return;
        }
        string[] filePaths = Directory.GetFiles(dirPath);
        foreach (string filePath in filePaths)
        {
            File.SetAttributes(filePath, FileAttributes.Normal);
            File.Delete(filePath);
        }
        string[] dirPaths = Directory.GetDirectories(dirPath);
        foreach (string path in dirPaths)
        {
            DeleteDirFile(path);
        }
    }
}

参考:https://kan-kikuchi.hatenablog.com/entry/DirectoryProcessor

参考

https://kan-kikuchi.hatenablog.com/entry/AssetBundle

https://orenda.co.jp/blog/1633/