EffectUI.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using FairyGUI;
  2. using UnityEngine;
  3. namespace GFGGame
  4. {
  5. public class EffectUI
  6. {
  7. private GameObject _gameObject;
  8. private GoWrapper _wrapper;
  9. public bool Released;
  10. public void Reset(GGraph holder, string uiName, string resName, float scale = 100, EffectUIType effectUIType = EffectUIType.UI )
  11. {
  12. if (!Released) Release();
  13. Released = false;
  14. string resPath;
  15. switch(effectUIType)
  16. {
  17. case EffectUIType.Card:
  18. resPath = ResPathUtil.GetCardAnimationPath(resName);
  19. break;
  20. default:
  21. resPath = ResPathUtil.GetViewEffectPath(uiName, resName);
  22. break;
  23. }
  24. _gameObject = PrefabManager.Instance.SpawnSync(resPath);
  25. if(_gameObject == null)
  26. {
  27. return;
  28. }
  29. _gameObject.transform.localScale = new Vector3(scale, scale, scale);
  30. _wrapper = new GoWrapper(_gameObject);
  31. holder.SetNativeObject(_wrapper);
  32. var obj = _gameObject.GetComponent<BoxCollider2D>();
  33. if (obj != null) {
  34. CardDataManager.CardResInitWidth = (int)(obj.size.x * 100);
  35. CardDataManager.CardResInitHight = (int)(obj.size.y * 100);
  36. holder.x = CardDataManager.CardResInitWidth / 2 - obj.offset.x * 100;
  37. holder.y = CardDataManager.CardResInitHight / 2 - obj.offset.y * 100;
  38. }
  39. }
  40. public void Release()
  41. {
  42. Released = true;
  43. if (_gameObject != null)
  44. {
  45. PrefabManager.Instance.Restore(_gameObject);
  46. //GameObject.DestroyImmediate(_gameObject);
  47. _gameObject = null;
  48. }
  49. if (_wrapper != null)
  50. {
  51. if(_wrapper.wrapTarget != null)
  52. {
  53. _wrapper.wrapTarget = null;
  54. }
  55. _wrapper.Dispose();
  56. _wrapper = null;
  57. }
  58. }
  59. public GameObject GetObj()
  60. {
  61. return _gameObject;
  62. }
  63. }
  64. }