Exemple #1
0
 // 生成资源热更备选对象
 private static void GenerateHotAlternativeScriptable()
 {
     if (hotAlternativeObject == null)
     {
         hotAlternativeObject = (HotScriptableObject)AssetDatabase.LoadAssetAtPath(string.Format("Assets{0}Editor{1}BuildPackage{2}hot_alternative.asset", Path.DirectorySeparatorChar, Path.DirectorySeparatorChar, Path.DirectorySeparatorChar), typeof(HotScriptableObject));
         if (hotAlternativeObject == null)
         {
             var hp = BuildABTools.Replace(string.Format("{0}{1}Editor{2}BuildPackage{3}hot_alternative.asset", Application.dataPath, Path.DirectorySeparatorChar, Path.DirectorySeparatorChar, Path.DirectorySeparatorChar));
             if (File.Exists(hp))
             {
                 File.Delete(hp);
             }
             hotAlternativeObject = HotScriptableObject.CreateAlternativeScriptable <HotScriptableObject>();
             hotAlternativeObject.DataList.Clear();
             hotAlternativeObject.GenerateAlternativeDataList();
         }
     }
 }
Exemple #2
0
    // 生成热更资源对象
    private static void GenerateHotObject()
    {
        if (hotObject == null)
        {
            hotObject = (HotScriptableObject)AssetDatabase.LoadAssetAtPath(string.Format("Assets{0}Editor{1}BuildPackage{2}hot.asset", Path.DirectorySeparatorChar, Path.DirectorySeparatorChar, Path.DirectorySeparatorChar), typeof(HotScriptableObject));
            if (hotObject == null)
            {
                var hp = BuildABTools.Replace(string.Format("{0}{1}Editor{2}BuildPackage{3}hot.asset", Application.dataPath, Path.DirectorySeparatorChar, Path.DirectorySeparatorChar, Path.DirectorySeparatorChar));
                if (File.Exists(hp))
                {
                    File.Delete(hp);
                }
                hotObject = HotScriptableObject.CreateHotScriptable <HotScriptableObject>();
            }
        }

        hotObject.DataList.Clear();

        if (hotAlternativeObject != null)
        {
            for (int i = 0; i < hotAlternativeObject.DataList.Count; i++)
            {
                if (hotAlternativeObject.DataList[i].selected)
                {
                    hotObject.DataList.Add(hotAlternativeObject.DataList[i]);
                }
            }
        }
        else
        {
            GenerateHotAlternativeScriptable();
            GenerateHotObject();
        }

        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
    }
Exemple #3
0
    private void OnGUI()
    {
        EditorGUILayout.BeginVertical();
        fontStyle.fontSize         = 15;
        fontStyle.normal.textColor = Color.white;
        GUILayout.Label("正式资源操作", fontStyle);

        // ******************** 此处开始为热更操作 *********************
        GUILayout.Space(20);
        fontStyle.fontSize         = 15;
        fontStyle.normal.textColor = Color.white;
        GUILayout.Label("热更资源操作", fontStyle);
        GUILayout.Space(10);

        GUILayout.BeginHorizontal();
        if (GUILayout.Button("清理资源备选名单"))
        {
            RGLog.Debug(" 清理资源备选名单 ");
            GenerateHotAlternativeScriptable();
            ClearHotAlternativeScriptable();
        }
        if (GUILayout.Button("生成资源备选名单"))
        {
            RGLog.Debug(" 生成资源备选名单 ");

            GenerateHotObject();
        }
        GUILayout.EndHorizontal();

        if (hotObject != null)
        {
            if (hotObject.DataList.Count > 0)
            {
                if (GUILayout.Button("build hot bundle"))
                {
                    BuildABTools.BuildHotAll(hotObject.DataList);
                }

                GUILayout.Space(10);

                GUILayout.Label("热更资源名单[" + hotObject.DataList.Count + "]");

                EditorGUILayout.BeginScrollView(Vector2.zero, GUILayout.Height(hotObject.DataList.Count * 20));

                for (int i = 0; i < hotObject.DataList.Count; i++)
                {
                    if (hotObject.DataList[i].selected)
                    {
                        EditorGUILayout.LabelField(hotObject.DataList[i].package);
                    }
                }

                EditorGUILayout.EndScrollView();
            }
            else
            {
                GUILayout.Space(10);
                fontStyle.fontSize         = 12;
                fontStyle.normal.textColor = Color.red;
                GUILayout.Label("备注:\n1.请在资源备选名单中选择要热更的资源\n2.然后再执行'生成热更资源名单' ", fontStyle);
            }
        }
        else
        {
            GenerateHotObject();
        }
        EditorGUILayout.EndVertical();
    }