EditorManifestAsset.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using UnityEditor;
  2. namespace VEngine.Editor.Simulation
  3. {
  4. public class EditorManifestAsset : ManifestAsset
  5. {
  6. private int assetIndex;
  7. private int groupIndex;
  8. private string[] groups;
  9. protected override void OnLoad()
  10. {
  11. base.OnLoad();
  12. groupIndex = 0;
  13. assetIndex = 0;
  14. pathOrURL = name;
  15. groups = AssetDatabase.GetAllAssetBundleNames();
  16. status = LoadableStatus.Loading;
  17. }
  18. public override void Override()
  19. {
  20. Versions.Override(asset);
  21. }
  22. protected override void OnUpdate()
  23. {
  24. if (status == LoadableStatus.Loading)
  25. {
  26. while (groupIndex < groups.Length)
  27. {
  28. var group = groups[groupIndex];
  29. var assets = AssetDatabase.GetAssetPathsFromAssetBundle(group);
  30. while (assetIndex < assets.Length)
  31. {
  32. asset.AddAsset(assets[assetIndex]);
  33. assetIndex++;
  34. }
  35. assetIndex = 0;
  36. groupIndex++;
  37. }
  38. Finish();
  39. }
  40. }
  41. public static EditorManifestAsset Create(string name, bool builtin)
  42. {
  43. var asset = new EditorManifestAsset
  44. {
  45. name = name
  46. };
  47. return asset;
  48. }
  49. }
  50. }