47.Window窗口基础使用

47.FGUI进阶-窗口-窗口基础使用


47.1 知识点

什么是窗口

  • 窗口是组件的一种特殊拓展
  • 窗口可以设置任意组件作为它的显示内容
  • 窗口 = 内容组件+窗口管理API

如何制作窗口内容组件

窗口内容组件需放置一个名称为frame的组件,一般作为窗口的背景

窗口内容组件frame组件中可以有的内容

  • closeButton—名为 closeButton 的按钮,作为关闭按钮
  • dragArea—名为 dragArea 的空白图形,作为可拖动窗口的拖动区域
  • contentArea—名为 contentArea 的空白图形,作为窗口主要内容显示区域
    • 当调用ShowModalWait时,窗口会被锁定
    • 如果设定了contentArea,则只锁定contentArea指定的区域,否则锁定整个窗口
    • 如果你希望窗口在modalWait状态下依然能够拖动和关闭,那么就不要让contentArea覆盖标题栏区域
  • 是否有名为frame的组件,或者该组件中是否有closeButton、dragArea、contentArea都是可选项

Unity中使用窗口

基础包和组件面板的导入

//基础包和组件面板的导入
//设置默认字体
UIConfig.defaultFont = "Other/STHUPO";
//设置超链接字体颜色
HtmlParseOptions.DefaultLinkColor = Color.red;
//基础包和组件面板的导入
//设置适配相关
GRoot.inst.SetContentScaleFactor(1365, 768, UIContentScaler.ScreenMatchMode.MatchHeight);
//当前包和依赖包的加载
UIPackage package = UIPackage.AddPackage("UI/FGUI教程");
foreach (var item in package.dependencies)
{
    UIPackage.AddPackage("UI/" + item["name"]);
}
//设置按钮音效和音量
UIConfig.buttonSound = (NAudioClip)UIPackage.GetItemAssetByURL("ui://Teach/btnMusic");
UIConfig.buttonSoundVolumeScale = 0.5f;
//默认竖直滚动条 再FGUI全局默认设置的进unity不用代码设置会不生效 或者用UIConfig设置
UIConfig.verticalScrollBar = "ui://Teach/MyScrollBar3";
////创建组件对象 要设置为导出
//GComponent view = UIPackage.CreateObject("FGUI教程", "Lesson46_FGUI进阶_树").asCom;
////添加到根对象
//GRoot.inst.AddChild(view);

窗口类相关API

//窗口类相关API

//1-1显示窗口
//创建了一个窗口 
Window window = new Window();
//让窗口的contentPane关联组件 作为窗口显示的内容
window.contentPane = UIPackage.CreateObject("FGUI教程", "Lesson47_FGUI进阶_窗口_窗口基础使用").asCom;
//分辨率自适应
window.contentPane.MakeFullScreen();
//如果要设置为模态 一定是show之前就要设置 
window.modal = true;
//设置模态窗口的背景颜色
UIConfig.modalLayerColor = new Color(0, 0, 0, 0.5f);
//显示窗口
window.Show();

//1-2隐藏窗口
//window.Hide();

//1-3获取窗口是否显示
if(window.isShowing)
{
    print("窗口显示着");
}

//1-4窗口设置为模态
//模态就是窗口显示出来后 后面变成蒙层 不能点击 一定要处理当前窗口
////如果要设置为模态 一定是show之前就要设置 
//window.modal = true;
////设置模态窗口的背景颜色
//UIConfig.modalLayerColor = new Color(0, 0, 0, 0.5f);

//1-5锁定窗口
//比如充值面板 点击重置过后 可能会和服务器进行通讯 需要等待
window.ShowModalWait();//执行过这个方法后 内容区的内容被锁定 不能被操作
//设定锁定窗口时的 提示资源 避免玩家不知道被锁定了 这个提示可以给它一些反馈 需要再开始时就设置
UIConfig.windowModalWaiting = "";

//1-6取消窗口锁定
window.CloseModalWait();

运行结果


47.2 知识点代码

using FairyGUI;
using FairyGUI.Utils;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson47_FGUI进阶_窗口_窗口基础使用 : MonoBehaviour
{
    void Start()
    {
        #region 知识点一 什么是窗口?
        //窗口是组件的一种特殊拓展
        //窗口可以设置任意组件作为它的显示内容
        //窗口 = 内容组件+窗口管理API
        #endregion

        #region 知识点二 如何制作窗口内容组件
        //1.窗口内容组件需放置一个名称为frame的组件,一般作为窗口的背景
        //2.窗口内容组件frame组件中可以有的内容
        //  2-1:closeButton—名为 closeButton 的按钮,作为关闭按钮
        //  2-2:dragArea—名为 dragArea 的空白图形,作为可拖动窗口的拖动区域
        //  2-3:contentArea—名为 contentArea 的空白图形,作为窗口主要内容显示区域
        //  这个区域只用于API ShowModalWait
        //  当调用ShowModalWait时,窗口会被锁定
        //  如果设定了contentArea,则只锁定contentArea指定的区域,否则锁定整个窗口
        //  如果你希望窗口在modalWait状态下依然能够拖动和关闭,那么就不要让contentArea覆盖标题栏区域

        //  这些内容皆为可选,不是必须
        //  意思是 是否有名为frame的组件,或者该组件中是否有closeButton、dragArea、contentArea都是可选项
        #endregion

        #region 知识点三 Unity中使用窗口

        //基础包和组件面板的导入
        //设置默认字体
        UIConfig.defaultFont = "Other/STHUPO";
        //设置超链接字体颜色
        HtmlParseOptions.DefaultLinkColor = Color.red;
        //基础包和组件面板的导入
        //设置适配相关
        GRoot.inst.SetContentScaleFactor(1365, 768, UIContentScaler.ScreenMatchMode.MatchHeight);
        //当前包和依赖包的加载
        UIPackage package = UIPackage.AddPackage("UI/FGUI教程");
        foreach (var item in package.dependencies)
        {
            UIPackage.AddPackage("UI/" + item["name"]);
        }
        //设置按钮音效和音量
        UIConfig.buttonSound = (NAudioClip)UIPackage.GetItemAssetByURL("ui://Teach/btnMusic");
        UIConfig.buttonSoundVolumeScale = 0.5f;
        //默认竖直滚动条 再FGUI全局默认设置的进unity不用代码设置会不生效 或者用UIConfig设置
        UIConfig.verticalScrollBar = "ui://Teach/MyScrollBar3";
        ////创建组件对象 要设置为导出
        //GComponent view = UIPackage.CreateObject("FGUI教程", "Lesson46_FGUI进阶_树").asCom;
        ////添加到根对象
        //GRoot.inst.AddChild(view);


        //窗口类相关API

        //1-1显示窗口
        //创建了一个窗口 
        Window window = new Window();
        //让窗口的contentPane关联组件 作为窗口显示的内容
        window.contentPane = UIPackage.CreateObject("FGUI教程", "Lesson47_FGUI进阶_窗口_窗口基础使用").asCom;
        //分辨率自适应
        window.contentPane.MakeFullScreen();
        //如果要设置为模态 一定是show之前就要设置 
        window.modal = true;
        //设置模态窗口的背景颜色
        UIConfig.modalLayerColor = new Color(0, 0, 0, 0.5f);
        //显示窗口
        window.Show();

        //1-2隐藏窗口
        //window.Hide();

        //1-3获取窗口是否显示
        if(window.isShowing)
        {
            print("窗口显示着");
        }

        //1-4窗口设置为模态
        //模态就是窗口显示出来后 后面变成蒙层 不能点击 一定要处理当前窗口
        ////如果要设置为模态 一定是show之前就要设置 
        //window.modal = true;
        ////设置模态窗口的背景颜色
        //UIConfig.modalLayerColor = new Color(0, 0, 0, 0.5f);

        //1-5锁定窗口
        //比如充值面板 点击重置过后 可能会和服务器进行通讯 需要等待
        window.ShowModalWait();//执行过这个方法后 内容区的内容被锁定 不能被操作
        //设定锁定窗口时的 提示资源 避免玩家不知道被锁定了 这个提示可以给它一些反馈 需要再开始时就设置
        UIConfig.windowModalWaiting = "";

        //1-6取消窗口锁定
        window.CloseModalWait();

        #endregion
    }
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏