ResourcesComponentHelper.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text;
  6. using UnityEngine;
  7. namespace ET.Client
  8. {
  9. [FriendOf(typeof(ResourcesComponentHelper))]
  10. public static class ResourcesComponentHelperSystem
  11. {
  12. [ObjectSystem]
  13. public class ResourcesComponentHelperAwakeSystem : AwakeSystem<ResourcesComponentHelper>
  14. {
  15. protected override void Awake(ResourcesComponentHelper self, params object[] param)
  16. {
  17. ResourcesComponentHelper.Instance = self;
  18. }
  19. }
  20. [ObjectSystem]
  21. public class ResourcesComponentHelperDestroySystem : DestroySystem<ResourcesComponentHelper>
  22. {
  23. protected override void Destroy(ResourcesComponentHelper self)
  24. {
  25. ResourcesComponentHelper.Instance = null;
  26. }
  27. }
  28. public static async ETTask LoadSprite(this ResourcesComponentHelper self,Scene scene,string ab)
  29. {
  30. await scene.GetComponent<ResourcesLoaderComponent>().LoadAsync(ab.StringToAB());
  31. }
  32. public static Sprite GetSprite(this ResourcesComponentHelper self,string ab, string spriteName)
  33. {
  34. UnityEngine.Object spriteObj = ResourcesComponent.Instance.GetAsset(ab.StringToAB(), spriteName);
  35. if (spriteObj != null)
  36. {
  37. if (spriteObj == null)
  38. Debug.LogError("@@@9 spriteObj == null ");
  39. if (spriteObj is Sprite)
  40. {
  41. return spriteObj as Sprite;
  42. }
  43. else if (spriteObj is Texture2D)
  44. {
  45. Texture2D texture = spriteObj as Texture2D;
  46. var sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f), 100f);
  47. return sprite;
  48. }
  49. }
  50. return null;
  51. }
  52. public static async ETTask LoadAssetAsync(this ResourcesComponentHelper self, Scene scene, string ab)
  53. {
  54. await scene.GetComponent<ResourcesLoaderComponent>().LoadAsync(ab.StringToAB());
  55. }
  56. public static UnityEngine.Object GetAssetAsync(this ResourcesComponentHelper self, string ab, string subAB)
  57. {
  58. return ResourcesComponent.Instance.GetAsset(ab.StringToAB(), subAB);
  59. }
  60. }
  61. [ComponentOf(typeof(Scene))]
  62. public class ResourcesComponentHelper : Entity, IAwake, IDestroy
  63. {
  64. public static ResourcesComponentHelper Instance { get; set; }
  65. }
  66. }