呼叫高级ui & 系统ui​

2026-02-22 17:09:46

呼叫高级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,提升游戏的交互体验。