DressUpObjUI.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using FairyGUI;
  2. using UnityEngine;
  3. namespace GFGGame
  4. {
  5. public class DressUpObjUI
  6. {
  7. public GameObject sceneObject;
  8. public GoWrapper wrapper;
  9. public DressUpObj dressUpObj;
  10. string prefabName;
  11. public DressUpObjUI(string prefabName = "SceneDressUp")
  12. {
  13. this.prefabName = prefabName;
  14. dressUpObj = new DressUpObj();
  15. wrapper = new GoWrapper();
  16. }
  17. public void ResetSceneObj(int scale = 100, bool needSetMask = false, bool showSceneType = true, GameObject roleObj = null, bool showBg = true)
  18. {
  19. if(sceneObject == null)
  20. sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath(this.prefabName));
  21. sceneObject.transform.localScale = new Vector3(scale, scale, scale);
  22. dressUpObj.setSceneObj(sceneObject, needSetMask, showSceneType, roleObj, showBg);
  23. Timers.inst.AddUpdate(OnUpdate);
  24. }
  25. public void UpdateWrapper(GGraph holder)
  26. {
  27. holder.SetNativeObject(wrapper);
  28. wrapper.wrapTarget = sceneObject;
  29. }
  30. public void SetScale(Vector2 vector2)
  31. {
  32. wrapper.scale = vector2;
  33. }
  34. public void Dispose()
  35. {
  36. if (sceneObject != null)
  37. {
  38. PrefabManager.Instance.Restore(sceneObject);
  39. sceneObject = null;
  40. }
  41. if (dressUpObj != null)
  42. {
  43. dressUpObj.Dispose();
  44. dressUpObj = null;
  45. }
  46. if (wrapper != null)
  47. {
  48. wrapper.Dispose();
  49. wrapper = null;
  50. }
  51. }
  52. private void OnUpdate(object o)
  53. {
  54. if(sceneObject == null)
  55. {
  56. Timers.inst.Remove(OnUpdate);
  57. return;
  58. }
  59. wrapper.wrapTarget = sceneObject;
  60. //wrapper.CacheRenderers();
  61. }
  62. }
  63. }