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