区块链技术博客
www.b2bchain.cn

78.GUIManager(二)卸载界面求职学习资料

D0b2wT.gif

本文介绍了78.GUIManager(二)卸载界面求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

在上一篇我们完成了 GUIManager 的加载逻辑,我们今天再往下接着学习。

我们在上一篇列出了 GUIManager 的两个职责:

  1. 管理 UI 界面的加载 和 卸载。
  2. 管理 UI 层级。

第一个问题,我们已经解决了一半,另一半呢就是卸载问题。

在这篇文章中我们来解决卸载的问题。

卸载问题解决。

我们先看当前的加载代码实现:

        public static void LoadPanel(string panelName)         {             var panelPrefab = Resources.Load<GameObject>(panelName);             var panel = Instantiate(panelPrefab);             var canvasObj = GameObject.Find("Canvas");             panel.transform.SetParent(canvasObj.transform);              var panelRectTrans = panel.transform as RectTransform;              panelRectTrans.offsetMin = Vector2.zero;             panelRectTrans.offsetMax = Vector2.zero;             panelRectTrans.anchoredPosition3D = Vector3.zero;             panelRectTrans.anchorMin = Vector2.zero;             panelRectTrans.anchorMax = Vector2.one;         }

在加载方法里呢,加载完 panel 之后,并没有返回给外部使用。所以,想要卸载也无从下手,除非 我们的 Panel 上挂了脚本。我们可以从脚本中进行卸载。不过,我们并没有限制用户,一定要挂上脚本界面才能被加载。

所以,要做的第一件事,就是给 LoadPanel 加上一个返回值,代码如下:

using UnityEngine;  namespace QFramework {     public class GUIManager : MonoBehaviour     {         public static GameObject LoadPanel(string panelName)         {             var panelPrefab = Resources.Load<GameObject>(panelName);             var panel = Instantiate(panelPrefab);             var canvasObj = GameObject.Find("Canvas");             panel.transform.SetParent(canvasObj.transform);              var panelRectTrans = panel.transform as RectTransform;

在上一篇我们完成了 GUIManager 的加载逻辑,我们今天再往下接着学习。

我们在上一篇列出了 GUIManager 的两个职责:

  1. 管理 UI 界面的加载 和 卸载。
  2. 管理 UI 层级。

第一个问题,我们已经解决了一半,另一半呢就是卸载问题。

在这篇文章中我们来解决卸载的问题。

卸载问题解决。

我们先看当前的加载代码实现:

        public static void LoadPanel(string panelName)         {             var panelPrefab = Resources.Load<GameObject>(panelName);             var panel = Instantiate(panelPrefab);             var canvasObj = GameObject.Find("Canvas");             panel.transform.SetParent(canvasObj.transform);              var panelRectTrans = panel.transform as RectTransform;              panelRectTrans.offsetMin = Vector2.zero;             panelRectTrans.offsetMax = Vector2.zero;             panelRectTrans.anchoredPosition3D = Vector3.zero;             panelRectTrans.anchorMin = Vector2.zero;             panelRectTrans.anchorMax = Vector2.one;         }

在加载方法里呢,加载完 panel 之后,并没有返回给外部使用。所以,想要卸载也无从下手,除非 我们的 Panel 上挂了脚本。我们可以从脚本中进行卸载。不过,我们并没有限制用户,一定要挂上脚本界面才能被加载。

所以,要做的第一件事,就是给 LoadPanel 加上一个返回值,代码如下:

using UnityEngine;  namespace QFramework {     public class GUIManager : MonoBehaviour     {         public static GameObject LoadPanel(string panelName)         {             var panelPrefab = Resources.Load<GameObject>(panelName);             var panel = Instantiate(panelPrefab);             var canvasObj = GameObject.Find("Canvas");             panel.transform.SetParent(canvasObj.transform);              var panelRectTrans = panel.transform as RectTransform;

在上一篇我们完成了 GUIManager 的加载逻辑,我们今天再往下接着学习。

我们在上一篇列出了 GUIManager 的两个职责:

  1. 管理 UI 界面的加载 和 卸载。
  2. 管理 UI 层级。

第一个问题,我们已经解决了一半,另一半呢就是卸载问题。

在这篇文章中我们来解决卸载的问题。

卸载问题解决。

我们先看当前的加载代码实现:

        public static void LoadPanel(string panelName)         {             var panelPrefab = Resources.Load<GameObject>(panelName);             var panel = Instantiate(panelPrefab);             var canvasObj = GameObject.Find("Canvas");             panel.transform.SetParent(canvasObj.transform);              var panelRectTrans = panel.transform as RectTransform;              panelRectTrans.offsetMin = Vector2.zero;             panelRectTrans.offsetMax = Vector2.zero;             panelRectTrans.anchoredPosition3D = Vector3.zero;             panelRectTrans.anchorMin = Vector2.zero;             panelRectTrans.anchorMax = Vector2.one;         }

在加载方法里呢,加载完 panel 之后,并没有返回给外部使用。所以,想要卸载也无从下手,除非 我们的 Panel 上挂了脚本。我们可以从脚本中进行卸载。不过,我们并没有限制用户,一定要挂上脚本界面才能被加载。

所以,要做的第一件事,就是给 LoadPanel 加上一个返回值,代码如下:

using UnityEngine;  namespace QFramework {     public class GUIManager : MonoBehaviour     {         public static GameObject LoadPanel(string panelName)         {             var panelPrefab = Resources.Load<GameObject>(panelName);             var panel = Instantiate(panelPrefab);             var canvasObj = GameObject.Find("Canvas");             panel.transform.SetParent(canvasObj.transform);              var panelRectTrans = panel.transform as RectTransform;

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 78.GUIManager(二)卸载界面求职学习资料
分享到: 更多 (0)
D0b2wT.gif

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们