static void CompareAndBuildPatch(string from, string to, string patchs) { Dictionary <string, bool> abdicts = new Dictionary <string, bool>(); SelectionTools.ParseSelectionHandler handler = delegate(string file, string ext) { if (AssetBundleParser.assetbundle_check(file)) { abdicts[SelectionTools.SpliteFileNameWithExt(file)] = true; } }; SelectionTools.GetSelectionFileList(from, handler, "读取之前版本AssetBundle文件列表"); SelectionTools.GetSelectionFileList(to, handler, "读取新版本AssetBundle文件列表"); SelectionTools.ParseSelectionHandler handler1 = delegate(string file, string ext) { File.Delete(file); }; SelectionTools.GetSelectionFileList(patchs, handler1, "清理旧补丁文件"); int index = 0; int count = abdicts.Count; System.IntPtr ctx = AssetBundleParser.assetbundle_diff_init(string.Format("{0}/bundle.patch", patchs)); Dictionary <string, bool> .Enumerator em = abdicts.GetEnumerator(); while (em.MoveNext()) { string bundlename = em.Current.Key; EditorUtility.DisplayProgressBar("正在生成补丁", bundlename, (float)index++ / count); AssetBundleParser.assetbundle_diff_update(ctx, string.Format("{0}/{1}", from, bundlename), string.Format("{0}/{1}", to, bundlename), bundlename); } AssetBundleParser.assetbundle_diff_final(ctx); EditorUtility.ClearProgressBar(); }
void MergeFromPatch(string from, string to, string patchs) { List <string> files = new List <string>(); Dictionary <string, bool> abdicts = new Dictionary <string, bool>(); SelectionTools.ParseSelectionHandler handler = delegate(string file, string ext) { if (ext == "patch") { files.Add(file); } abdicts[SelectionTools.SpliteFilePath(file)] = true; }; SelectionTools.GetSelectionFileList(patchs, handler, "正在遍历补丁文件列表"); int count = files.Count; AssetBundleParser.MergeProgress progress = delegate(string bundlename, int index, int size) { EditorUtility.DisplayProgressBar("正在应用补丁", bundlename, (float)index / size); }; for (int index = 0; index < count; index++) { string patchfile = files[index]; AssetBundleParser.assetbundle_merge(patchfile, from, to, progress); } EditorUtility.ClearProgressBar(); }
public static void AsignBatch(string path) { List <string> files = new List <string>(); SelectionTools.ParseSelectionHandler handler = delegate(string file, string ext) { if (ext != "manifest") { files.Add(file); } }; SelectionTools.GetSelectionFileList(path, handler); int count = files.Count; for (int index = 0; index < count; index++) { string file = files[index]; EditorUtility.DisplayProgressBar("正在更新签名", file, (float)index / count); if (AssetBundleParser.assetbundle_sign(file) == false) { Debug.LogFormat("{0}更新签名失败。", file); } } EditorUtility.ClearProgressBar(); }
/// <summary> /// Find selected ID's based on a area selection done by our selectiontools. /// We find BAG id's within an area using a WebRequest and an API. /// </summary> public void FindSelectedIDsInArea() { SelectionTools selectionTools = FindObjectOfType <SelectionTools>(); var vertices = selectionTools.GetVertices(); var bounds = selectionTools.GetBounds(); //Polygon selection StartCoroutine(GetAllIDsInPolygonRange(vertices.ToArray(), HighlightObjectsWithIDs)); }
public override void OnInspectorGUI() { Transform trans = target as Transform; EditorGUIUtility.LookLikeControls(15f); Vector3 pos; Vector3 rot; Vector3 scale; // Position EditorGUILayout.BeginHorizontal(); { if (DrawButton("P", "Reset Position", IsResetPositionValid(trans), 20f)) { Undo.RegisterUndo(trans, "Reset Position"); trans.localPosition = Vector3.zero; } pos = DrawVector3(trans.localPosition); } EditorGUILayout.EndHorizontal(); // Rotation EditorGUILayout.BeginHorizontal(); { if (DrawButton("R", "Reset Rotation", IsResetRotationValid(trans), 20f)) { Undo.RegisterUndo(trans, "Reset Rotation"); trans.localEulerAngles = Vector3.zero; } rot = DrawVector3(trans.localEulerAngles); } EditorGUILayout.EndHorizontal(); // Scale EditorGUILayout.BeginHorizontal(); { if (DrawButton("S", "Reset Scale", IsResetScaleValid(trans), 20f)) { Undo.RegisterUndo(trans, "Reset Scale"); trans.localScale = new Vector3(1, 1, 1); } scale = DrawVector3(trans.localScale); } EditorGUILayout.EndHorizontal(); // 如果有数值更改,设置 transform 数值 if (GUI.changed) { Undo.RegisterUndo(trans, "Transform Change"); trans.localPosition = Validate(pos); trans.localEulerAngles = Validate(rot); trans.localScale = Validate(scale); } // Copy EditorGUILayout.BeginHorizontal(); { bFastPut = EditorGUILayout.Toggle(new GUIContent("", "Mouse Put"), bFastPut, EditorStyles.miniButton, GUILayout.Width(20)); Color c = GUI.color; GUI.color = new Color(1f, 1f, 0.5f, 1f); //GUILayout.Button(, GUILayout.Width(width)); if (GUILayout.Button("Copy Local", EditorStyles.miniButtonLeft)) { v3Pos = trans.localPosition; qRotate = trans.localRotation; v3Scale = trans.localScale; } GUI.color = new Color(1f, 0.5f, 0.5f, 1f); if (GUILayout.Button("Paste Local", EditorStyles.miniButtonRight)) { Undo.RegisterUndo(trans, "Paste Local"); trans.localPosition = v3Pos; trans.localRotation = qRotate; trans.localScale = v3Scale; } GUI.color = c; } EditorGUILayout.EndHorizontal(); // Copy EditorGUILayout.BeginHorizontal(); { if (GUILayout.Button("Paste Pos", EditorStyles.miniButtonLeft)) { Undo.RegisterUndo(trans, "Paste Pos"); trans.localPosition = v3Pos; } if (GUILayout.Button("Paste Rot", EditorStyles.miniButtonMid)) { Undo.RegisterUndo(trans, "Paste Rot"); trans.localRotation = qRotate; } if (GUILayout.Button("Paste Sca", EditorStyles.miniButtonRight)) { Undo.RegisterUndo(trans, "Paste Sca"); trans.localScale = v3Scale; } } EditorGUILayout.EndHorizontal(); //paste ui EditorGUILayout.BeginHorizontal(); { if (GUILayout.Button("Paste UIPosX", EditorStyles.miniButtonLeft)) { System.Type T = typeof(GUIUtility); PropertyInfo systemCopyBufferProperty = T.GetProperty("systemCopyBuffer", BindingFlags.Static | BindingFlags.NonPublic); string value = (string)systemCopyBufferProperty.GetValue(T, null); Vector3 localPos = trans.localPosition; trans.localPosition = new Vector3(float.Parse(value) - 960 / 2, localPos.y, localPos.z); } if (GUILayout.Button("Paste UIPosY", EditorStyles.miniButtonMid)) { System.Type T = typeof(GUIUtility); PropertyInfo systemCopyBufferProperty = T.GetProperty("systemCopyBuffer", BindingFlags.Static | BindingFlags.NonPublic); string value = (string)systemCopyBufferProperty.GetValue(T, null); Vector3 localPos = trans.localPosition; trans.localPosition = new Vector3(localPos.x, 640 / 2 - float.Parse(value), localPos.z); } } EditorGUILayout.EndHorizontal(); // AddChild EditorGUILayout.BeginHorizontal(); { if (GUILayout.Button("Add Child", EditorStyles.miniButton, GUILayout.Width(80))) { SelectionTools.CreateChild(strChildName); } EditorGUILayout.LabelField("Name", GUILayout.Width(40)); strChildName = EditorGUILayout.TextField(strChildName); } EditorGUILayout.EndHorizontal(); }