[其他资源] [单脚本][MyClearHP] 简易的血条系统,包含伤害死亡重生逻辑,智能UI显示

  [复制链接]
2876 |10
叽里咕噜小胡桃 发表于 2023-5-28 18:05:38 | 显示全部楼层 |阅读模式
本帖最后由 叽里咕噜小胡桃 于 2024-10-12 22:37 编辑

灵感来源于rust、战地1等常见射击类游戏的血条信息
血条有三种配色风格(当然你也可以自己新增、定义你的风格),自己、队友、敌人
血条信息会根据对方与玩家的距离选择性显示
当离得很近时,会显示点、血条、昵称,方便知道对方具体的情况
稍微远一档时会显示点、昵称,不显示血量,方便知道对方的名字、敌我状态
在远一点只会显示一个点,只知道对方的敌我状态
最远一档则全部消失,世界UI也被裁剪
这些距离范围会敌对状态而缩小,即更容易发现友军的信息,更不容易发现敌人的信息

1. 安装MyClearHp
MyClearHP.ts (75.82 KB, 下载次数: 227)
回复

使用道具 举报

Baldwin 发表于 2023-5-29 09:03:30 | 显示全部楼层
太牛了
回复

使用道具 举报

掏泥 发表于 2023-6-13 08:49:17 | 显示全部楼层
666
回复

使用道具 举报

化蛹为碟 发表于 2023-9-23 16:53:32 | 显示全部楼层
场景里加入这个脚本后,玩家碰到零件后角色名称显示不出来了
  1. let mesh = this.gameObject as Gameplay.Mesh
  2.         mesh.onEnter.add((other:Core.GameObject)=>{
  3.             if(other instanceof Gameplay.Character){
  4.                 let character = other as Gameplay.Character
  5.                 console.log("触碰到玩家名称:",character.characterName)
  6.             }
  7.         })
  8.     }
复制代码
回复

使用道具 举报

叽里咕噜小胡桃楼主 发表于 2023-9-23 17:04:17 来自手机 | 显示全部楼层
化蛹为碟 发表于 2023-9-23 16:53
场景里加入这个脚本后,玩家碰到零件后角色名称显示不出来了

当然会显示不出来,因为我MyClearHp获取角色昵称之后就要把characterName清除掉,免得重复显示,你可以在我的单脚本里搜一下 CharacterName=""
回复

使用道具 举报

吃到苦就是得到了甜 发表于 2023-9-25 20:18:16 | 显示全部楼层
太牛了
回复

使用道具 举报

躲猫猫作者_思想的鱼 发表于 2024-1-25 11:05:56 | 显示全部楼层
本帖最后由 躲猫猫作者_思想的鱼 于 2024-1-25 11:11 编辑

在使用过程中报错提示:


property 'curHP' of undefined,TypeError: Cannot read property 'curHP' of undefined



根据game.js定位找到报错相关代码位置是:

if (oldHpMap.get(eventCharId).curHP != undefined) {



在这段代码上面打印oldHpMap.get(eventCharId)为undefined,所以取不到curHP

建议修改为:

if (oldHpMap.has(eventCharId) && oldHpMap.get(eventCharId).curHP != undefined


回复

使用道具 举报

叽里咕噜小胡桃楼主 发表于 2024-1-25 11:31:24 | 显示全部楼层

已修复 感谢反馈  新版另做了更多判空处理 欢迎继续反馈~
回复

使用道具 举报

躲猫猫作者_思想的鱼 发表于 2024-1-29 10:19:12 | 显示全部楼层
在使用过程中报错提示:

unhandledRejection,Error: access a invalid object,Error: access a invalid object

报错详情:

at newConstructor.getTargetUIWidget (../../../MetaWorldMobile/Content/JavaScript/MWUserBootstrap.js:22916:42)


根据game.js定位找到报错相关代码位置是:

let CurrWorldUIWidget = findUIScript(
              worldUI.getTargetUIWidget(),
            ) as UIHP;





具体怎么优化,还没有进行测试。计划是在这边继续做个判断,确保worldUI.getTargetUIWidget()能取到。
回复

使用道具 举报

躲猫猫作者_思想的鱼 发表于 2024-2-5 18:36:48 | 显示全部楼层
报错内容:

Error  unhandledRejection,TypeError: Cannot read property 'getOriginEventName' of null,TypeError: Cannot read property 'getOriginEventName' of null




报错位置:

let OtherUI = findUIScript(OtherworldUI.getTargetUIWidget()) as UIHP;


解决思路:
增加判空

if (OtherworldUI != undefined && OtherworldUI.getTargetUIWidget()) {
                  let OtherUI = findUIScript(
                    OtherworldUI.getTargetUIWidget(),
                  ) as UIHP;


回复

使用道具 举报

热门版块
快速回复 返回顶部 返回列表