public static T CreateAsset <T>(string path, Action <T> onCreateCallback = null) where T : ScriptableObject { var asset = ScriptableObject.CreateInstance <T>(); path = path.WithoutRootPath(FilePathConst.ProjectPath); var dir = path.DirPath(); if (!dir.IsNullOrEmpty()) { StdioUtil.CreateDirectoryIfNotExist(dir); } var fileExtensionName = Path.GetExtension(path); if (!StringConst.String_Asset_Extension.Equals(fileExtensionName)) { path = path.Replace(fileExtensionName, StringConst.String_Asset_Extension); } onCreateCallback?.Invoke(asset); EditorUtility.SetDirty(asset); AssetDatabase.CreateAsset(asset, path); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); return(asset); }
public static void AssetBundleBuild() { LogCat.ClearLogs(); //AssetBuildInfoManagerTest.Test();//需要自动设置依赖的,请在AssetBuildInfoManagerTest中添加Root文件,然后取消注释 StdioUtil.CreateDirectoryIfNotExist(BuildConst.Output_Path); LuaBuildUtil.PreBuild(); AssetBundleManifest manifest = BuildPipeline.BuildAssetBundles(BuildConst.Output_Path, BuildAssetBundleOptions.None, BuildTarget.Android); AssetPathMapBuildUtil.Build(manifest); AssetBundleMapBuildUtil.Build(manifest); ResVersionBuildUtil.Build(); AssetPathRefBuildUtil.Build(); var netBoxPath = (BuildConst.Output_Root_Path + "/NetBox.exe").Replace("/", "\\"); Process.Start(netBoxPath); EditorUtilityCat.DisplayDialog( string.Format("AssetBundle Build Finished,output:\n {0}", BuildConst.Output_Path), BuildConst.Output_Path); }