Unity5中Inspector界面上的AssetBundle值设定问题

折月煮酒 提交于 2019-12-03 16:07:01
注: 编辑器扩展方面  Unity5  AssetBundle
Unity5对AssetBundle做了很大的调整,与旧版很大不同,例如,如果一个资源已经打包,如果该资源没有任何更新,那么该资源将不会被打包。打包的同时会生成该文件同名的“*.manifest”文件,该文件中记录了打包后的bundle文件的相关信息。
此外,在Inspector面板中还多出了AssetBundle的名称和文件扩展名的的选项,如图:

最近有个需求需要通过以编辑器扩展方式实现同时设置多个资源文件的AssetBundle文件名和后缀。
代码如下:
    [MenuItem("Tool/SetFileBundleName")]
    static void SetBundleName()
    {

        #region 设置资源的AssetBundle的名称和文件扩展名
        UnityEngine. Object[] selects = Selection.objects;
        foreach (UnityEngine. Object selected in selects)
        {
            string path = AssetDatabase.GetAssetPath(selected);
            AssetImporter asset = AssetImporter .GetAtPath(path);
            asset.assetBundleName = selected.name; //设置Bundle文件的名称
            asset.assetBundleVariant = "unity3d";//设置Bundle文件的扩展名
            asset.SaveAndReimport();
            
        }
        AssetDatabase .Refresh();
        #endregion
    }

这样,在Project面板中选中多个资源点击菜单项“Tool/SetFileBundleName”就自动将AssetBundle项设置为资源的名字,将后缀设置为“unity3d”。
注意:此时Inspector面板并没有及时刷新,可能看到的还是None,但是实际上已经设置了,只需要鼠标点击其他任意文件,再点回来就可以看到。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!