Unity学习-搭建UI框架

本文介绍如何在Unity中搭建UI框架,包括创建UIPanel预制体,利用JsonUtility解析配置文件,定义面板枚举,实现UIManager单例,设计面板基类及子类,管理面板层级,并详细阐述了Canvas Group的设置及其在交互中的作用。
摘要由CSDN通过智能技术生成

整体思路:

首先我们先要有一些面板的预制体

然后在Resources文件夹下,我们创建一个文件夹,命名为UIPanel,将这些预制体放在UIPanel下(没有Resources文件夹就在Assets文件夹下创建一个)

然后我们根据这些预制体及其路径编写一个json文件,首个类型必须是对象(由于JsonUtility神奇的解析功能,可以不使用JsonUtility,这里主要老师使用的是JsonUtility,我就跟着用了)

{
  "infoList":
  [
    {
      "panelTypeString": "ItemMessage",
      "path": "UIPanel/ItemMessagePanel"
    },
    {
      "panelTypeString": "Knapsack",
      "path": "UIPanel/KnapsackPanel"
    },
    {
      "panelTypeString": "MainMenu",
      "path": "UIPanel/MainMenuPanel"
    },
    {
      "panelTypeString": "Shop",
      "path": "UIPanel/ShopPanel"
    },
    {
      "panelTypeString": "Skill",
      "path": "UIPanel/SkillPanel"
    },
    {
      "panelTypeString": "System",
      "path": "UIPanel/SystemPanel"
    },
    {
      "panelTypeString": "Task",
      "path": "UIPanel/TaskPanel"
    }
  ]
}

我们根据这个json文档,创建一个枚举用于保存对应的面板类型

public enum UIPanelType
{
    ItemMessage,
    Knapsack,
    MainMenu,
    Shop,
    Skill,
    System,
    Task
}

然后创建整个UI框架的核心:UIManager(不用继承MonoBehaviour)

首先声明一个字典用于保存面板对应的路径:

private Dictionary<UIPanelType, string> PanelPathDict;//用于存放面板类型对应的路径

由于必须使UIManager唯一,所以我们将其做成单例

private static UIManager _instance;//单例返回的私有静态对象

    public static UIManager Instance//单例
    {
        get
        {
            if (_instance 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值