////------------------------------------------------------------------------- //string _checkDragText(Rect rect) //{ // string path = ""; // if ((Event.current.type == EventType.DragUpdated || // Event.current.type == EventType.DragExited) && // rect.Contains(Event.current.mousePosition)) // { // path = DragAndDrop.paths[0]; // if (!string.IsNullOrEmpty(path)) // { // DragAndDrop.AcceptDrag(); // } // } // return path; //} //------------------------------------------------------------------------- void _checkIfNeedPackOrCopyRawPlatform(bool is_currentneed, ProjectPlatformInfo build_target) { if (is_currentneed) { _setNeedPackOrCopyRawPlatform(build_target); } else { _removeNeedPackOrCopyRawPlatform(build_target); } }
//------------------------------------------------------------------------- void _copyOrDeleteToPersistentDataPath(ProjectPlatformInfo build_target, bool is_copy) { string persistent_data_path = ""; string resource_path = ""; if (build_target.BuildTarget == BuildTarget.iOS) { persistent_data_path = Application.persistentDataPath + "/IOS/"; resource_path = build_target.PlatformTargetRootPath + build_target.DataVersion; } else if (build_target.BuildTarget == BuildTarget.Android) { persistent_data_path = Application.persistentDataPath + "/ANDROID/"; resource_path = build_target.PlatformTargetRootPath + build_target.DataVersion; } else if (build_target.BuildTarget == BuildTarget.StandaloneWindows64) { persistent_data_path = Application.persistentDataPath + "/PC/"; resource_path = build_target.PlatformTargetRootPath + build_target.DataVersion; } persistent_data_path = persistent_data_path.Replace(@"\", "/"); if (is_copy) { if (!Directory.Exists(persistent_data_path)) { Directory.CreateDirectory(persistent_data_path); } try { copyFile(resource_path, persistent_data_path, resource_path, mDoNotCopyDir); ShowNotification(new GUIContent("复制AB到本地成功!")); } catch (System.Exception e) { Debug.LogWarning(e.Message); } } else { PlayerPrefs.DeleteAll(); try { deleteFile(persistent_data_path); ShowNotification(new GUIContent("删除本地AB成功!")); } catch (System.Exception e) { Debug.LogWarning(e.Message); } } }
//------------------------------------------------------------------------- void _setNeedPackOrCopyRawPlatform(ProjectPlatformInfo build_target) { if (!ListNeedBuildPlatform.Contains(build_target)) { ListNeedBuildPlatform.Add(build_target); } if (!ListNeedCopyRawPlatform.Contains(build_target)) { ListNeedCopyRawPlatform.Add(build_target); } }
//------------------------------------------------------------------------- void _changeBundleData(ProjectPlatformInfo platform_info, bool add) { int bundle = int.Parse(platform_info.BundleVersion.Replace(".", "")); if (add) { bundle += 1; } else { bundle -= 1; } string bundle_version = bundle.ToString(); bundle_version = bundle_version.Insert(1, ".").Insert(4, "."); platform_info.BundleVersion = bundle_version; changeBundleData(platform_info.PlatformKey, CurrentProjectABTargetPath, bundle_version); if (CurrentPlatformProjectPlatformInfo.PlatformName.Equals(platform_info.PlatformName)) { //PlayerSettings.bundleVersion = bundle_version; } }
//------------------------------------------------------------------------- void _removeNeedPackOrCopyRawPlatform(ProjectPlatformInfo build_target) { ListNeedBuildPlatform.Remove(build_target); ListNeedCopyRawPlatform.Remove(build_target); }
//------------------------------------------------------------------------- void OnGUI() { EditorGUILayout.BeginHorizontal(); int select_index = 0; if (CurrentProject != null) { if (!MapProjectIndexCombineWithSelectIndex.TryGetValue(CurrentProject.ProjectIndex, out select_index)) { return; } select_index = EditorGUILayout.Popup("当前项目:", select_index, ArrayProjectBundleIdentity); if (CurrentSelectIndex != select_index) { _decideCurrentProject(select_index); _initCurrentProject(); _checkResourcesPath(); _getCurrentTargetPath(); _translatePatchXml(mPatchInfoPath); CurrentSelectIndex = select_index; ListNeedBuildPlatform.Clear(); ListNeedCopyRawPlatform.Clear(); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); mIsPackSelectItem = EditorGUILayout.Toggle("BuildSelectItems", mIsPackSelectItem); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("AB资源所在路径:", mAssetBundleResourcesPath); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("裸资源所在路径:", mRowAssetPath); EditorGUILayout.EndHorizontal(); //EditorGUILayout.BeginHorizontal(); //EditorGUILayout.LabelField("Config所在路径:", mConfigPath); //EditorGUILayout.EndHorizontal(); _drawSplitLine(); MapProjectPlatformInfoChanged.Clear(); foreach (var item in MapProjectPlatformInfo) { var platform_info = _drwaProjectPlatformInfo(item.Value); MapProjectPlatformInfoChanged[item.Key] = platform_info; } foreach (var i in MapProjectPlatformInfoChanged) { ProjectPlatformInfo project_info = null; MapProjectPlatformInfo.TryGetValue(i.Key, out project_info); if (project_info != null) { project_info.cloneData(i.Value); } } EditorGUILayout.BeginHorizontal(); bool click_build_asset = GUILayout.Button("打AssetBundle包(压缩)", GUILayout.Width(200)); if (click_build_asset) { _startBuild(); } bool click_build_copy_raw = GUILayout.Button("CopyAssetsRawFoldToABFold", GUILayout.Width(200)); if (click_build_copy_raw) { _startCopyRawAndConfig(); } EditorGUILayout.EndHorizontal(); _drawSplitLine(); EditorGUILayout.BeginHorizontal(); bool copy_android = mCopyAndroid; copy_android = EditorGUILayout.Toggle("Copy&DeleteAndroidAB", copy_android); if (mCopyAndroid != copy_android) { mCopyAndroid = copy_android; _checkIfNeedCopyPlatform(mCopyAndroid, MapProjectPlatformInfo["ANDROID"]); } bool copy_ios = mCopyIOS; copy_ios = EditorGUILayout.Toggle("Copy&DeleteIOSAB", copy_ios); if (mCopyIOS != copy_ios) { mCopyIOS = copy_ios; _checkIfNeedCopyPlatform(mCopyIOS, MapProjectPlatformInfo["IOS"]); } bool copy_pc = mCopyPC; copy_pc = EditorGUILayout.Toggle("Copy&DeletePCAB", copy_pc); if (mCopyPC != copy_pc) { mCopyPC = copy_pc; _checkIfNeedCopyPlatform(mCopyPC, MapProjectPlatformInfo["PC"]); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); bool copy_asset = GUILayout.Button("复制选中平台AB资源到persistentPath"); if (copy_asset) { foreach (var i in ListNeedCopyPlatform) { _copyOrDeleteToPersistentDataPath(i, false); _copyOrDeleteToPersistentDataPath(i, true); } } bool delete_asset = GUILayout.Button("删除选中平台persistentPath中的AB资源"); if (delete_asset) { foreach (var i in ListNeedCopyPlatform) { _copyOrDeleteToPersistentDataPath(i, false); } } EditorGUILayout.EndHorizontal(); }
//------------------------------------------------------------------------- void OnGUI() { EditorGUILayout.BeginHorizontal(); int select_index = 0; if (CurrentProject != null) { if (!MapProjectIndexCombineWithSelectIndex.TryGetValue(CurrentProject.ProjectIndex, out select_index)) { return; } select_index = EditorGUILayout.Popup("当前项目:", select_index, ArrayProjectBundleIdentity); if (CurrentSelectIndex != select_index) { _decideCurrentProject(select_index); _initCurrentProject(); _checkResourcesPath(); _getCurrentTargetPath(); _translatePatchXml(mPatchInfoPath); CurrentSelectIndex = select_index; ListNeedBuildPlatform.Clear(); ListNeedCopyRawPlatform.Clear(); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); mIsPackSelectItem = EditorGUILayout.Toggle("BuildSelectItems", mIsPackSelectItem); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("AB资源所在路径:", mAssetBundleResourcesPath); //Rect ab_resourcesrect = EditorGUILayout.GetControlRect(GUILayout.Width(500)); //mAssetBundleResourcesPath = EditorGUI.TextField(ab_resourcesrect, mAssetBundleResourcesPath); //if ((Event.current.type == EventType.DragUpdated || // Event.current.type == EventType.DragExited) && // ab_resourcesrect.Contains(Event.current.mousePosition)) //{ // string path = DragAndDrop.paths[0]; // if (!string.IsNullOrEmpty(path)) // { // DragAndDrop.AcceptDrag(); // mAssetBundleResourcesPath = path; // } //} EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("裸资源所在路径:", mRowAssetPath); //Rect ab_rowrect = EditorGUILayout.GetControlRect(GUILayout.Width(500)); //mRowAssetPath = EditorGUI.TextField(ab_rowrect, mRowAssetPath); //if ((Event.current.type == EventType.DragUpdated || // Event.current.type == EventType.DragExited) && // ab_rowrect.Contains(Event.current.mousePosition)) //{ // string path = DragAndDrop.paths[0]; // if (!string.IsNullOrEmpty(path)) // { // DragAndDrop.AcceptDrag(); // mRowAssetPath = path; // } //} EditorGUILayout.EndHorizontal(); _drawSplitLine(); MapProjectPlatformInfoChanged.Clear(); foreach (var item in MapProjectPlatformInfo) { var platform_info = _drwaProjectPlatformInfo(item.Value); MapProjectPlatformInfoChanged[item.Key] = platform_info; } foreach (var i in MapProjectPlatformInfoChanged) { ProjectPlatformInfo project_info = null; MapProjectPlatformInfo.TryGetValue(i.Key, out project_info); if (project_info != null) { project_info.cloneData(i.Value); } } //bool check_path = GUILayout.Button("重设路径", GUILayout.Width(200)); //if (check_path) //{ // _checkPath(); // _checkPatchData(); //} EditorGUILayout.BeginHorizontal(); bool click_build_asset = GUILayout.Button("打AssetBundle包(压缩)", GUILayout.Width(200)); if (click_build_asset) { _startBuild(); } bool click_build_copy_raw = GUILayout.Button("CopyAssetsRawFoldToABFold", GUILayout.Width(200)); if (click_build_copy_raw) { _startCopyRaw(); } EditorGUILayout.EndHorizontal(); _drawSplitLine(); EditorGUILayout.BeginHorizontal(); bool copy_android = mCopyAndroid; copy_android = EditorGUILayout.Toggle("Copy&DeleteAndroidAB", copy_android); if (mCopyAndroid != copy_android) { mCopyAndroid = copy_android; _checkIfNeedCopyPlatform(mCopyAndroid, MapProjectPlatformInfo["ANDROID"]); } bool copy_ios = mCopyIOS; copy_ios = EditorGUILayout.Toggle("Copy&DeleteIOSAB", copy_ios); if (mCopyIOS != copy_ios) { mCopyIOS = copy_ios; _checkIfNeedCopyPlatform(mCopyIOS, MapProjectPlatformInfo["IOS"]); } bool copy_pc = mCopyPC; copy_pc = EditorGUILayout.Toggle("Copy&DeletePCAB", copy_pc); if (mCopyPC != copy_pc) { mCopyPC = copy_pc; _checkIfNeedCopyPlatform(mCopyPC, MapProjectPlatformInfo["PC"]); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); bool copy_asset = GUILayout.Button("复制选中平台AB资源到persistentPath"); if (copy_asset) { foreach (var i in ListNeedCopyPlatform) { _copyOrDeleteToPersistentDataPath(i, false); _copyOrDeleteToPersistentDataPath(i, true); } } bool delete_asset = GUILayout.Button("删除选中平台persistentPath中的AB资源"); if (delete_asset) { foreach (var i in ListNeedCopyPlatform) { _copyOrDeleteToPersistentDataPath(i, false); } } EditorGUILayout.EndHorizontal(); }