static public void ListAssetbundleDependencis(bool isAll) { if (AssetBundleEditorHelper.HasValidSelection()) { string localFilePath = PackageUtils.GetCurBuildSettingAssetBundleManifestPath(); Object[] selObjs = Selection.objects; var depsList = AssetBundleEditorHelper.GetDependancisFormBuildManifest(localFilePath, selObjs, isAll); if (depsList == null) { return; } depsList.Sort(); string depsStr = string.Empty; int i = 0; foreach (string str in depsList) { depsStr += string.Format("[{0}]{1}\n", ++i, str); } string selStr = string.Empty; i = 0; foreach (Object obj in selObjs) { selStr += string.Format("[{0}]{1};", ++i, AssetDatabase.GetAssetPath(obj)); } Debug.Log(string.Format("Selection({0}) directly depends on the following assetbundles:" + "\n-------------------------------------------\n" + "{1}" + "\n-------------------------------------------\n", selStr, depsStr)); } }
static void CheckSimulateModelEnv() { if (!AssetBundleConfig.IsSimulateMode) { return; } var buildTargetName = PackageUtils.GetCurPlatformName(); var channelName = PackageUtils.GetCurSelectedChannel().ToString(); var outputManifest = PackageUtils.GetCurBuildSettingAssetBundleManifestPath(); bool hasBuildAssetBundles = false; if (!File.Exists(outputManifest)) { bool checkBuild = EditorUtility.DisplayDialog("Build AssetBundles Warning", string.Format("Build AssetBundles for : \n\nplatform : {0} \nchannel : {1} \n\nContinue ?", buildTargetName, channelName), "Confirm", "Cancel"); if (!checkBuild) { ToggleEditorMode(); return; } hasBuildAssetBundles = true; BuildPlayer.BuildAssetBundlesForCurSetting(); } var streamingManifest = PackageUtils.GetCurBuildSettingStreamingManifestPath(); if (hasBuildAssetBundles || !File.Exists(streamingManifest)) { bool checkCopy = EditorUtility.DisplayDialog("Copy AssetBundles To StreamingAssets Warning", string.Format("Copy AssetBundles to streamingAssets folder for : \n\nplatform : {0} \nchannel : {1} \n\nContinue ?", buildTargetName, channelName), "Confirm", "Cancel"); if (!checkCopy) { ToggleEditorMode(); return; } // 拷贝到StreamingAssets目录时,相当于执行大版本更新,那么沙盒目录下的数据就作废了 // 真机上会对比这两个目录下的App版本号来删除,编辑器下暴力一点,直接删除 ToolsClearPersistentAssets(); PackageUtils.CopyCurSettingAssetBundlesToStreamingAssets(EditorUserBuildSettings.activeBuildTarget); } LaunchAssetBundleServer.CheckAndDoRunning(); }