DefaultUIFormHelper.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. //------------------------------------------------------------
  2. // Game Framework
  3. // Copyright © 2013-2021 loyalsoft. All rights reserved.
  4. // Homepage: http://www.game7000.com/
  5. // Feedback: http://www.game7000.com/
  6. //------------------------------------------------------------
  7. using GameFramework.UI;
  8. using UnityEngine;
  9. namespace UnityGameFramework.Runtime
  10. {
  11. /// <summary>
  12. /// 默认界面辅助器。
  13. /// </summary>
  14. public class DefaultUIFormHelper : UIFormHelperBase
  15. {
  16. private ResourceComponent m_ResourceComponent = null;
  17. /// <summary>
  18. /// 实例化界面。
  19. /// </summary>
  20. /// <param name="uiFormAsset">要实例化的界面资源。</param>
  21. /// <returns>实例化后的界面。</returns>
  22. public override object InstantiateUIForm(object uiFormAsset)
  23. {
  24. return Instantiate((Object)uiFormAsset);
  25. }
  26. /// <summary>
  27. /// 创建界面。
  28. /// </summary>
  29. /// <param name="uiFormInstance">界面实例。</param>
  30. /// <param name="uiGroup">界面所属的界面组。</param>
  31. /// <param name="userData">用户自定义数据。</param>
  32. /// <returns>界面。</returns>
  33. public override IUIForm CreateUIForm(object uiFormInstance, IUIGroup uiGroup, object userData)
  34. {
  35. GameObject gameObject = uiFormInstance as GameObject;
  36. if (gameObject == null)
  37. {
  38. Log.Error("UI form instance is invalid.");
  39. return null;
  40. }
  41. Transform transform = gameObject.transform;
  42. transform.SetParent(((MonoBehaviour)uiGroup.Helper).transform);
  43. transform.localScale = Vector3.one;
  44. return gameObject.GetOrAddComponent<UIForm>();
  45. }
  46. /// <summary>
  47. /// 释放界面。
  48. /// </summary>
  49. /// <param name="uiFormAsset">要释放的界面资源。</param>
  50. /// <param name="uiFormInstance">要释放的界面实例。</param>
  51. public override void ReleaseUIForm(object uiFormAsset, object uiFormInstance)
  52. {
  53. m_ResourceComponent.UnloadAsset(uiFormAsset);
  54. Destroy((Object)uiFormInstance);
  55. }
  56. private void Start()
  57. {
  58. m_ResourceComponent = GameEntry.GetComponent<ResourceComponent>();
  59. if (m_ResourceComponent == null)
  60. {
  61. Log.Fatal("Resource component is invalid.");
  62. return;
  63. }
  64. }
  65. }
  66. }