YIUIInvokeLoadHandler.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using UnityEngine;
  2. using UnityEngine.U2D;
  3. using YIUIFramework;
  4. using UnityObject = UnityEngine.Object;
  5. namespace ET.Client
  6. {
  7. #if !YIUIMACRO_SYNCLOAD_CLOSE
  8. [Invoke(EYIUIInvokeType.Sync)]
  9. public class YIUIInvokeLoadSpriteSyncHandler : AInvokeEntityHandler<YIUIInvokeEntity_LoadSprite, Sprite>
  10. {
  11. public override Sprite Handle(Entity entity, YIUIInvokeEntity_LoadSprite args)
  12. {
  13. EntityRef<YIUILoadComponent> loadRef = entity.YIUILoad();
  14. if (loadRef.Entity == null)
  15. {
  16. return null;
  17. }
  18. var resName = args.ResName;
  19. var spriteComponent = loadRef.Entity.GetComponent<YIUIYooAssetsSpriteComponent>();
  20. var sprite = spriteComponent.GetSprite(resName);
  21. if (sprite == null)
  22. {
  23. return null;
  24. }
  25. return sprite;
  26. }
  27. }
  28. #endif
  29. [Invoke(EYIUIInvokeType.Async)]
  30. public class YIUIInvokeLoadSpriteAsyncHandler : AInvokeEntityHandler<YIUIInvokeEntity_LoadSprite, ETTask<Sprite>>
  31. {
  32. public override async ETTask<Sprite> Handle(Entity entity, YIUIInvokeEntity_LoadSprite args)
  33. {
  34. EntityRef<YIUILoadComponent> loadRef = entity.YIUILoad();
  35. if (loadRef.Entity == null)
  36. {
  37. return null;
  38. }
  39. var resName = args.ResName;
  40. var spriteComponent = loadRef.Entity.GetComponent<YIUIYooAssetsSpriteComponent>();
  41. var sprite = await spriteComponent.GetSpriteAsync(resName);
  42. if (sprite == null)
  43. {
  44. return null;
  45. }
  46. return sprite;
  47. }
  48. }
  49. }