示例#1
0
    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();
    }
示例#2
0
    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();
    }
示例#3
0
    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();
    }
示例#4
0
        /// <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));
        }
示例#5
0
    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();
    }