123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- //------------------------------------------------------------
- // Game Framework
- // Copyright © 2013-2021 loyalsoft. All rights reserved.
- // Homepage: http://www.game7000.com/
- // Feedback: http://www.game7000.com/
- //------------------------------------------------------------
- using GameFramework;
- using UnityEditor;
- using UnityEngine;
- namespace UnityGameFramework.Editor.ResourceTools
- {
- /// <summary>
- /// 资源同步工具。
- /// </summary>
- internal sealed class ResourceSyncTools : EditorWindow
- {
- private const float ButtonHeight = 60f;
- private const float ButtonSpace = 5f;
- private ResourceSyncToolsController m_Controller = null;
- [MenuItem("Game Framework/Resource Tools/Resource Sync Tools", false, 44)]
- private static void Open()
- {
- ResourceSyncTools window = GetWindow<ResourceSyncTools>("Resource Sync Tools", true);
- #if UNITY_2019_3_OR_NEWER
- window.minSize = new Vector2(400, 195f);
- #else
- window.minSize = new Vector2(400, 205f);
- #endif
- }
- private void OnEnable()
- {
- m_Controller = new ResourceSyncToolsController();
- m_Controller.OnLoadingResource += OnLoadingResource;
- m_Controller.OnLoadingAsset += OnLoadingAsset;
- m_Controller.OnCompleted += OnCompleted;
- m_Controller.OnResourceDataChanged += OnResourceDataChanged;
- }
- private void OnGUI()
- {
- EditorGUILayout.BeginVertical(GUILayout.Width(position.width), GUILayout.Height(position.height));
- {
- GUILayout.Space(ButtonSpace);
- if (GUILayout.Button("Remove All Asset Bundle Names in Project", GUILayout.Height(ButtonHeight)))
- {
- if (!m_Controller.RemoveAllAssetBundleNames())
- {
- Debug.LogWarning("Remove All Asset Bundle Names in Project failure.");
- }
- else
- {
- Debug.Log("Remove All Asset Bundle Names in Project completed.");
- }
- AssetDatabase.Refresh();
- }
- GUILayout.Space(ButtonSpace);
- if (GUILayout.Button("Sync ResourceCollection.xml to Project", GUILayout.Height(ButtonHeight)))
- {
- if (!m_Controller.SyncToProject())
- {
- Debug.LogWarning("Sync ResourceCollection.xml to Project failure.");
- }
- else
- {
- Debug.Log("Sync ResourceCollection.xml to Project completed.");
- }
- AssetDatabase.Refresh();
- }
- GUILayout.Space(ButtonSpace);
- if (GUILayout.Button("Sync ResourceCollection.xml from Project", GUILayout.Height(ButtonHeight)))
- {
- if (!m_Controller.SyncFromProject())
- {
- Debug.LogWarning("Sync Project to ResourceCollection.xml failure.");
- }
- else
- {
- Debug.Log("Sync Project to ResourceCollection.xml completed.");
- }
- AssetDatabase.Refresh();
- }
- }
- EditorGUILayout.EndVertical();
- }
- private void OnLoadingResource(int index, int count)
- {
- EditorUtility.DisplayProgressBar("Loading Resources", Utility.Text.Format("Loading resources, {0}/{1} loaded.", index.ToString(), count.ToString()), (float)index / count);
- }
- private void OnLoadingAsset(int index, int count)
- {
- EditorUtility.DisplayProgressBar("Loading Assets", Utility.Text.Format("Loading assets, {0}/{1} loaded.", index.ToString(), count.ToString()), (float)index / count);
- }
- private void OnCompleted()
- {
- EditorUtility.ClearProgressBar();
- }
- private void OnResourceDataChanged(int index, int count, string assetName)
- {
- EditorUtility.DisplayProgressBar("Processing Assets", Utility.Text.Format("({0}/{1}) {2}", index.ToString(), count.ToString(), assetName), (float)index / count);
- }
- }
- }
|