网易我的世界论坛
标题:
[技术公布]在UI中绑定引擎变量,实现原生效果
[打印本页]
作者:
sevenstars
时间:
2021-12-17 02:20
标题:
[技术公布]在UI中绑定引擎变量,实现原生效果
本帖最后由 sevenstars 于 2021-12-17 02:27 编辑
我们知道,开发者可以在HUD上添加自己的UI,比如各种技能按钮,菜单按钮等。但据我观察,很多开发者的UI并不会在按下F1(即打开“隐藏HUD”)后隐藏。这给玩家的截图带来了不便。然而很遗憾的是,我们不能通过modAPI获取玩家是否打开了“隐藏HUD”。但现在只需在UI加几行json,绑定游戏自带变量,就能实现这个效果。
比如这里有一个按钮控件:
"SetButton@common.button": {
"anchor_from": "top_left",
"anchor_to": "top_left",
//剩下的省略
}
复制代码
要想实现让这个按钮和它的子控件可以按F1就隐藏,可以改成这样:
"SetButton@common.button": {
"anchor_from": "top_left",
"anchor_to": "top_left",
//剩下的省略
"bindings": [
{
"binding_name": "#hud_visible", //绑定游戏变量hud_visible,这个变量的值取决于“隐藏HUD”是否开启。
"binding_name_override": "#visible", //绑定控件变量visible,这时你这个控件的visible就取决于hud_visible这个变量的值了
"binding_type": "global" //绑定类型为全局绑定
}
]
}
复制代码
这样写完之后,内部流程就是,玩家开启或关闭HUD显示->hud_visible变化->visible变化->控件显示或隐藏。
当然,我的世界的HUD的透明度也是可以调的,如果想让mod的UI透明度跟随HUD透明度,可以再绑定两个变量:
"SetButton@common.button": {
"anchor_from": "top_left",
"anchor_to": "top_left",
//剩下的省略
"bindings": [
{
"binding_name": "#hud_visible",
"binding_name_override": "#visible",
"binding_type": "global"
},
{
"binding_name": "#hud_alpha",
"binding_name_override": "#alpha",
"binding_type": "global"
},
{
"binding_name": "#hud_propagate_alpha",
"binding_name_override": "#propagateAlpha",
"binding_type": "global"
}
]
}
复制代码
这样,此按钮控件的alpha和propagateAlpha就和游戏的hud_alpha以及hud_propagate_alpha绑定了。这样就实现了某个控件与它的子控件的透明度跟随HUD透明度。
除了这三个之外,还有很多游戏变量可以绑定,我这里列举一下:
paper_doll_visible:是否开启了显示纸娃娃
is_not_creative_mode:是否不在创造模式
is_creative_mode:是否在创造模式
exp_progress:玩家的经验值进度(推荐绑定到控件的clip_ratio上)
level_number:玩家的经验等级(请绑定到控件的text上)
level_number_visible:玩家的经验等级是否显示
is_armor_visible:玩家是否穿着盔甲
player_position_text:玩家的坐标(和打开显示坐标后的值一样,请绑定到控件的text上)
player_position_visible:玩家是否打开显示坐标
is_riding:玩家是否在骑乘
is_not_riding:玩家是否没在骑乘
作者:
果喵
时间:
2021-12-17 09:28
顶.png
作者:
方戨阙
时间:
2021-12-17 10:49
很小但很实用的东西,奈斯
6
作者:
SEDC当地法规和
时间:
2021-12-18 00:01
顶
作者:
fanfanjiayou
时间:
2021-12-18 12:11
顶
作者:
晴天流鼻涕
时间:
2021-12-18 20:00
好用
作者:
MI4C_163
时间:
2021-12-21 16:05
顶
作者:
南山陶然客
时间:
2022-1-10 11:54
大佬,为什么绑定必须是global
作者:
小林一茶
时间:
2022-4-25 14:45
mark 一下
作者:
小林一茶
时间:
2022-4-25 14:46
请问这些游戏变量,是在哪儿找到的呢?
作者:
z殇x
时间:
2022-7-19 20:11
顶.png
欢迎光临 网易我的世界论坛 (http://mc.netease.com/)
Powered by Discuz! X3.3