呼叫高级ui & 系统ui 前言 在游戏开发中,我们经常需要调用一些高级UI界面或系统内置的UI界面,如菜单、存档、设置等。本教程将介绍如何使用CallCustomUI和CallSystemUI函数来实现这些功能。
1、CallCustomUI - 打开高级ui界面 CallCustomUI函数用于打开自定义的高级UI界面。
函数签名 typescript/**
* 打开高级ui界面
* @param index 界面索引(工具端界面索引值-1)
* @param params 界面参数
* @param closeSelf 是否关闭当前界面
*/
function CallCustomUI(index, params?, closeSelf?);参数说明 index:界面索引,用于标识要打开的高级UI界面(可以在工具中查看每个界面的索引id进行减1),从0开始params:可选,界面参数,以对象形式传递给UI界面,例如传递{"fps": 1}表示打开当前ui所需要的淡入时间为帧数为1closeSelf:可选,布尔值,指示是否在打开新界面时关闭当前界面使用示例 typescript// 打开索引为0001的高级UI界面,并传递fps参数,不关闭当前界面
CallCustomUI(0, {
"fps": 1
}, false);2、CallSystemUI - 打开系统ui界面 CallSystemUI函数用于打开系统内置的UI界面,如菜单、存档、设置等。
函数签名 typescript/**
* 打开系统ui界面
* @param name 系统界面名
* @param params 界面参数
* @param closeSelf 是否关闭当前界面
*/
function CallSystemUI(name: SYSTEM_UI, params?: any, closeSelf?: boolean);系统界面枚举 系统提供了多种内置的UI界面,通过SYSTEM_UI枚举来标识:
typescriptenum SYSTEM_UI {
/**
* 菜单界面
*/
SysMenu = 10001,
/**
* 剧情回放界面
*/
SysReplay = 10002,
/**
* CG鉴赏界面
*/
SysCGGallery = 10003,
/**
* BGM鉴赏界面
*/
SysBGMGallery = 10004,
/**
* 存档界面
*/
SysSave = 10005,
/**
* 读档界面
*/
SysLoad = 10006,
/**
* 设置界面
*/
SysSetting = 10007,
/**
* 商城界面
*/
SysShop = 10010,
/**
* 限时商城界面
*/
SysFlashSale = 10012,
/**
* 签到界面
*/
SysDailyAttendance = 10013,
/**
* 取名界面
*/
SysName = 10014,
/**
* 换装界面
*/
SysOutfit = 10015,
}参数说明 name:系统界面名称,必须是SYSTEM_UI枚举中的一个值params:可选,界面参数,根据不同的界面有不同的参数格式closeSelf:可选,布尔值,指示是否在打开新界面时关闭当前界面使用示例 打开菜单界面 typescript// 打开菜单界面,不关闭当前界面
CallSystemUI(SYSTEM_UI.SysMenu, null, false);打开存档界面 typescript// 打开存档界面,不关闭当前界面
CallSystemUI(SYSTEM_UI.SysSave, null, false);打开取名界面 typescript// 打开取名界面,传递参数,不关闭当前界面
CallSystemUI(SYSTEM_UI.SysName, {
"args": ["姓,0,0,名,0,1,昵称,0,2,国家,0,3", 3],
"fps": 1
}, false);打开换装界面 typescript// 打开换装界面,传递角色ID参数,不关闭当前界面
CallSystemUI(SYSTEM_UI.SysOutfit, {
"args": ["1"],
"fps": 1
}, false);3、在Scene中使用 在Scene类中,你可以通过以下方式调用这些函数:
打开系统菜单 typescript@LM.Class("MyScene")
export default class MyScene extends LM.Scene {
init() {
const menuButton = new LM.Button();
menuButton.text = "打开菜单";
menuButton.fontSize = 36;
menuButton.fontColor = "#ffffff";
menuButton.y = 200;
menuButton.onClick(() => {
// 打开系统菜单
CallSystemUI(LM.SYSTEM_UI.SysMenu, null, false);
});
this.addChild(menuButton);
}
}打开高级UI界面 typescript@LM.Class("MyScene")
export default class MyScene extends LM.Scene {
init() {
const customUIButton = new LM.Button();
customUIButton.text = "打开高级UI";
customUIButton.fontSize = 36;
customUIButton.fontColor = "#ffffff";
customUIButton.y = 300;
customUIButton.onClick(() => {
// 打开索引为0001的高级UI界面
CallCustomUI(0, {
"customParam": "value"
}, false);
});
this.addChild(customUIButton);
}
}4、注意事项 使用CallSystemUI时,确保使用正确的SYSTEM_UI枚举值传递参数时,注意参数格式要与目标界面的要求一致设置closeSelf为true会关闭当前界面,可能导致状态丢失,请谨慎使用高级ui界面的事件可以呼叫逻辑积木scene和脚本scene通过合理使用这两个函数,你可以轻松地在游戏中集成各种系统UI和高级自定义UI,提升游戏的交互体验。