UI管理

介绍

UNIHper中将UI分为UI实体和UI脚本两部分,脚本继承自Monobehaviour组件,在运行时将挂载到UI实体上进行UI相关的交互控制。

UI页面实体

UI页面实体就是一个预制体,可以通过右键菜单Create/UIPage 预制体进行创建,或者由美工提供。Note: 页面预制体需要加入资源管理系统

UI脚本

UI脚本组件可以通过右键菜单Create/UNIHper/UIScript进行创建,对应的UI会自动注册写入UI配置文件,对应查找的资源名为脚本名,若资源名称需要自定义,则需要更改对应配置文件的asset属性

UI配置文件

UI配置文件路径为Resources/UNIHper/uis.json

uis.json
{
    // 持久层UI 整个程序声明周期内均存在
    "Persistence": {
        "WatermarkUI": {
            "type": "Normal",             // UI类型
            "asset": "WatermarkUI",       // 资源名称 
            "canvas": "CanvasDefault"     // 指定附加到的 Canvas 结点
        }
    },

    // 场景相关UI 会随着场景销毁而销毁
    "SceneEntry": {
        "IdleUI": {} // 默认type为Normal, asset为IdleUI canvas为CanvasDefault
    }    
}

UI类型

  • Standalone 处于该种类型的资源,同时只会显示一个UI,显示时会隐藏其他Standalone类型UI。

  • Normal 处于该种类型的资源,显示和隐藏完全由用户自己控制显示和隐藏

  • Popup 处于该种类型的资源,显示UI时,会自动置于顶层显示,其他的UI会自动降层。

UI的显示及隐藏

using System.IO;
using UnityEngine;
using UNIHper;

public class SceneEntryScript : SceneScriptBase
{
    // Called once after scene is loaded
    private void Start()
    {
        // 显示界面IdleUI
        Managements.UI.Show<IdleUI>();
        // 隐藏界面IdleUI
        Managements.UI.Hide<IdleUI>();
        // 切换显示界面IdleUI
        Managements.UI.Toggle<IdleUI>();
    }
}

Last updated