大家好,我是SKODE。 小提示:选中左侧目录,可快速找到所需内容
本系列博客地址:传送门
上节我们完成了View视图层基类 BaseWindow 的创建,那么视图层管理的UI生成在面板的哪个位置呢?哪个类控制UI的位置呢?因此,就有了本节内容:
1、创建如下预制体
创建预制体,并放在Resources/UI下。该UI意义如下:
2、修改预制体锚点
将recyclePool、workstation、workstation三个物体的锚点,从居中改为将锚点定在四角。
记得Apply一下。
Assets/MVCLibrary下,创建UIRoot脚本,该脚本完成了:
内容如下:
using UnityEngine;
public class UIRoot
{
private static Transform transform;
/// <summary>
/// 回收的窗体(隐藏)
/// </summary>
private static Transform recyclePool;
/// <summary>
/// 前台显示的工作的窗体
/// </summary>
private static Transform workstation;
/// <summary>
/// 提示类型的窗体
/// </summary>
private static Transform noticestation;
private static bool isInit = false;
public static void Init()
{
if (transform == null)
{
var obj = Resources.Load<GameObject>("UI/UIRoot");
transform = GameObject.Instantiate(obj).transform;
}
if (recyclePool == null)
{
recyclePool = transform.Find("recyclePool");
}
if (workstation == null)
{
recyclePool = transform.Find("workstation");
}
if (noticestation == null)
{
recyclePool = transform.Find("noticestation");
}
isInit = true;
}
public static void SetParent(Transform window, bool isOpen, bool isTipsWindow = false)
{
if (isInit == false)
Init();
if (isOpen)
{
if (isTipsWindow)
{
window.SetParent(noticestation, false);
}
else
{
window.SetParent(workstation, false);
}
}
else
{
window.SetParent(recyclePool, false);
}
}
}
好了,下章见
一起进步
我是SKODE