Exemplo n.º 1
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        GUILayoutOption[] guiOpts = new GUILayoutOption[]
        {
            GUILayout.Width(80),
            GUILayout.ExpandWidth(true),
        };

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Name", guiOpts);
        EditorGUILayout.LabelField("Include", guiOpts);
        EditorGUILayout.LabelField("preDownload", guiOpts);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("All", guiOpts);
        var allIncludeTmp = EditorGUILayout.Toggle("", allInclude, guiOpts);

        if (allIncludeTmp != allInclude)
        {
            allInclude = allIncludeTmp;
            foreach (var i in mDirs)
            {
                mDirs[i.Key].include = allIncludeTmp;
            }
        }

        var allPreDownloadTmp = EditorGUILayout.Toggle("", allPreDownload, guiOpts);

        if (allPreDownloadTmp != allPreDownload)
        {
            allPreDownload = allPreDownloadTmp;
            foreach (var i in mDirs)
            {
                mDirs[i.Key].preDownload = allPreDownloadTmp;
            }
        }
        EditorGUILayout.EndHorizontal();

        allInclude     = mDirs.Where(i => i.Value.include).Count() == mBehavior.mDirs.Count();
        allPreDownload = mDirs.Where(i => i.Value.preDownload).Count() == mBehavior.mDirs.Count();

        foreach (var i in mDirs)
        {
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(i.Key.Replace("Assets/ABResources/", "  "), guiOpts);
            mDirs[i.Key].include     = EditorGUILayout.Toggle("", i.Value.include, guiOpts);
            mDirs[i.Key].preDownload = EditorGUILayout.Toggle("", i.Value.preDownload, guiOpts);
            EditorGUILayout.EndHorizontal();
        }

        var rect = EditorGUILayout.GetControlRect();

        if (GUI.Button(rect.Split(0, 4), "Refresh"))
        {
            Refresh();
        }
        if (GUI.Button(rect.Split(1, 4), "BAndroid"))
        {
            foreach (var i in mDirs.Where(ii => ii.Value.include))
            {
                BuildScript.BuildBundle(i.Key, i.Key.Replace("Assets/ABResources/", ""), BuildTarget.Android);
            }
        }
        //if(GUI.Button(rect.Split(2, 4), "Clean Build"))
        //{

        //}

        if (GUI.changed)
        {
            mBehavior.mDirs = mDirs.Values.ToArray();
            EditorUtility.SetDirty(mBehavior);
            //AssetDatabase.SaveAssets();
            AssetDatabase.Refresh();
        }
    }