SymbolTextOwner.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using System;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. namespace WXB
  6. {
  7. public partial class SymbolText : Text, Owner
  8. {
  9. List<Draw> m_UsedDraws = new List<Draw>();
  10. protected void FreeDraws()
  11. {
  12. m_UsedDraws.ForEach((Draw d) =>
  13. {
  14. if (d != null)
  15. {
  16. DrawFactory.Free(d);
  17. }
  18. });
  19. m_UsedDraws.Clear();
  20. }
  21. // 通过纹理获取渲染对象
  22. public Draw GetDraw(DrawType type, long key, Action<Draw, object> oncreate, object p = null)
  23. {
  24. for (int i = 0; i < m_UsedDraws.Count; ++i)
  25. {
  26. Draw draw = m_UsedDraws[i];
  27. if (draw.type == type && draw.key == key)
  28. return m_UsedDraws[i];
  29. }
  30. Draw dro = DrawFactory.Create(gameObject, type);
  31. dro.key = key;
  32. m_UsedDraws.Add(dro);
  33. oncreate(dro, p);
  34. return dro;
  35. }
  36. }
  37. }