Files
netease-modsdk-wiki/docs/mconline/10-addon教程/第16章:创建界面/课程06.简易教程②制作一个简易的生物血条.md
2025-03-17 13:24:39 +08:00

39 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/6_1.67d4a73b.jpg
hard: 进阶
time: 30分钟
---
# 简易教程② 制作一个简易的生物血条
#### 作者:境界
生物血条示例包下载:下载[示例包](https://g79.gdl.netease.com/guidedemo-case16.zip) 。
#### 设计UI部分
①在主节点下新建一个进度条控件取名为health_bar。锚点设置为置中并将长度设置为80像素宽度设置为10像素。
②在主节点下新建一个文本控件取名为health_text。锚点设置为置中并将长度宽度设置为与health_bar相当同时字号设置为8号行间距设置为3。
#### 脚本代码部分:
![](./images/6_1.jpg)
重写UI类的Create方法和Update方法当UI每一游戏刻更新时都会调用Update方法我们在里面使用一个小技巧通过query函数表可知query.health会返回生物的生命值而query.max_health会返回生物的最大生命值。往常处理时获取生物的血量需要通过服务端获取而使用GetMolangValue接口可以在客户端获取生物的血量信息。我们在这里更新血量的数值和进度条的裁切程度。
![](./images/6_2.jpg)
![](./images/6_3.jpg)
而在客户端系统上我们通过在UiInitFinish事件里添加一个实例变量来确保从这之后开始在AddEntityClientEvent事件里才能为其他实体生物绑定UI。在RemoveEntityClientEvent里移除UI。