DressUpObjUI.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using FairyGUI;
  2. using System;
  3. using UnityEngine;
  4. namespace GFGGame
  5. {
  6. public class DressUpObjUI
  7. {
  8. public GameObject sceneObject;
  9. public GoWrapper wrapper;
  10. public DressUpObj dressUpObj;
  11. string prefabName;
  12. private Action onShowAction;
  13. public DressUpObjUI(string prefabName = "SceneDressUp", Action onShowAction = null)
  14. {
  15. this.prefabName = prefabName;
  16. this.onShowAction = onShowAction;
  17. dressUpObj = new DressUpObj();
  18. wrapper = new GoWrapper();
  19. }
  20. public void ResetSceneObj(int scale = 100, bool needSetMask = false, bool showSceneType = true, GameObject roleObj = null, bool showBg = true)
  21. {
  22. //这里每次都要实例化新的,复用会有bug
  23. sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath(this.prefabName));
  24. sceneObject.transform.localScale = new Vector3(scale, scale, scale);
  25. dressUpObj.setSceneObj(sceneObject, needSetMask, showSceneType, roleObj, showBg, OnShow);
  26. }
  27. public void UpdateWrapper(GGraph holder)
  28. {
  29. holder.SetNativeObject(wrapper);
  30. wrapper.wrapTarget = sceneObject;
  31. }
  32. public void Dispose()
  33. {
  34. onShowAction = null;
  35. if (sceneObject != null)
  36. {
  37. PrefabManager.Instance.Restore(sceneObject);
  38. sceneObject = null;
  39. }
  40. if (dressUpObj != null)
  41. {
  42. dressUpObj.Dispose();
  43. dressUpObj = null;
  44. }
  45. if (wrapper != null)
  46. {
  47. if (wrapper.wrapTarget != null)
  48. {
  49. wrapper.wrapTarget = null;
  50. }
  51. wrapper.Dispose();
  52. wrapper = null;
  53. }
  54. }
  55. private void OnShow()
  56. {
  57. onShowAction?.Invoke();
  58. if (sceneObject == null)
  59. {
  60. return;
  61. }
  62. if(wrapper != null)
  63. {
  64. wrapper.wrapTarget = sceneObject;
  65. //wrapper.CacheRenderers();
  66. }
  67. }
  68. }
  69. }