【制作100个unity游戏之26】unity2d横版卷轴动作类游戏7(附带项目源码)

最终效果

在这里插入图片描述

系列导航

文章目录

  • 最终效果
  • 系列导航
  • 前言
  • 血条 能量条UI
    • 配置画布
    • 绘制血条 能量条UI 头像框
  • 延迟虚血
  • 源码
  • 完结

前言

欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第26篇中,我们将探索如何用unity制作一个unity2d横版卷轴动作类游戏,我会附带项目源码,以便你更好理解它。

本节主要是实现人物血条和延迟虚血

血条 能量条UI

配置画布

UI适配新的输入系统
在这里插入图片描述
选择我们自己创建的新输入系统
在这里插入图片描述
配置画布参数
在这里插入图片描述

绘制血条 能量条UI 头像框

具体可以看我之前的文章:unity实现延迟虚血,掉血缓冲的血条效果
在这里插入图片描述

新增CharacterEventSO,定义角色事件的ScriptableObject类

[CreateAssetMenu(menuName = "Event/CharacterEventSO")]
public class CharacterEventSO : ScriptableObject {public UnityAction<Character> OnEventRaised;// 定义角色事件被触发时的UnityAction// 触发角色事件的方法public void RaiseEvent(Character character){OnEventRaised?.Invoke(character);// 触发事件并传入角色参数}
}

添加SO配置
在这里插入图片描述

修改Character,触发生命值变化事件,通知UI更新显示

public UnityEvent<Character> OnHealthChanged;// 生命值变化时触发的事件private void Start()
{currentHealth = maxHealth;// 初始化当前生命值为最大生命值OnHealthChanged?.Invoke(this);// 触发生命值变化事件,通知UI更新显示
}public void TakeDamage(Attack attacker)
{//。。。OnHealthChanged?.Invoke(this);// 触发生命值变化事件,通知UI更新显示
}

配置
在这里插入图片描述
新增PlayerStatBar,玩家状态条类,用于显示玩家状态信息


public class PlayerStatBar : MonoBehaviour {public Image healthImage;//生命值显示的图片public Image healthDelayImage;//生命值缓冲显示的图片public Image powerImage;//力量条显示的图片//当接收到生命值变化百分比时更新生命值显示public void OnHealthChanged(float persentage){healthImage.fillAmount = persentage;// 更新生命值显示的填充比例}
}

配置
在这里插入图片描述

新增管理UI界面的类UIManager,响应角色生命值事件的方法,更新玩家状态条显示

// 管理UI界面的类
public class UIManager : MonoBehaviour {public PlayerStatBar playerStatBar;// 玩家状态条[Header("事件监听")]public CharacterEventSO healthEvent;// 角色生命值事件private void OnEnable() {healthEvent.OnEventRaised += OnHealthEvent;// 当启用时订阅生命值事件}private void OnDisable() {healthEvent.OnEventRaised -= OnHealthEvent;// 当禁用时取消订阅生命值事件}// 响应角色生命值事件的方法,更新玩家状态条显示private void OnHealthEvent(Character character){var persentage = character.currentHealth / character.maxHealth;// 计算当前生命值百分比playerStatBar.OnHealthChanged(persentage);// 更新玩家状态条显示}
}

配置
在这里插入图片描述
效果
在这里插入图片描述

延迟虚血

修改PlayerStatBar

private void Update(){if(healthDelayImage.fillAmount > healthImage.fillAmount){healthDelayImage.fillAmount -= Time.deltaTime * 0.8f;}
}

效果
在这里插入图片描述

源码

源码不出意外的话我会放在最后一节

完结

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,以便我第一时间收到反馈,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!

好了,我是向宇,https://xiangyu.blog.csdn.net

一位在小公司默默奋斗的开发者,出于兴趣爱好,最近开始自学unity,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!php是工作,unity是生活!如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/838740.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库设计大题详解

大题一&#xff1a;画E-R图&#xff08;概念结构设计&#xff09; 实体就是具体的物品&#xff0c;关系就是实体之间的关系&#xff0c;属性就是特征&#xff0c;内涵的意思 简单的小栗子&#xff1a; 1对1&#xff0c;1对n&#xff0c;n对m&#xff0c;自己考虑两者存在这个关…

PatterNodes 3 mac矢量图设计 ,色彩与图案的完美融合!

PatterNodes 3 for Mac是一款功能强大的矢量图形模式创建软件&#xff0c;专为Mac用户设计。它采用基于节点的界面&#xff0c;支持创建形状、线条、曲线或文本&#xff0c;以构建复杂的矢量图形模式。该软件还具备灵活的参数调整功能&#xff0c;允许用户实时预览结果并进行无…

根据参考风格进行矢量图绘制

摘要 利用机器学习根据给定的文本描述生成图像的技术已经取得了显著的进步&#xff0c;例如CLIP图像-文本编码器模型的发布&#xff1b;然而&#xff0c;当前的方法缺乏对生成图像风格的艺术控制。我们提出了一种方法&#xff0c;用于为给定的文本描述生成指定风格的绘图&…

Spring框架学习笔记(三):AOP编程

1 动态代理 1.1 通过案例理解动态代理 &#xff08;1&#xff09;需求说明&#xff1a; 1. 有 Vehicle接口(交通工具接口, 有一个 run 方法), 下面有两个实现类 Car 和 Ship 2. 当运行 Car 对象 的 run 方法和 Ship 对象的 run 方法时&#xff0c;输入如下内容, 注意观察前后…

HTML静态网页成品作业(HTML+CSS+JS)——在线购物商城网页设计制作(4个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;使用Javacsript代码实现图片轮播切换&#xff0c;共有4个页面。 二、…

手机图片恢复不求人:手动找回丢失的照片!

无论是外出旅行、聚会还是日常点滴&#xff0c;我们总是习惯用手机记录下来&#xff0c;让美好的瞬间定格在一张张照片中。然而&#xff0c;有时因为误删、清空缓存或是更换手机&#xff0c;那些珍贵的照片突然消失了。手机图片恢复有什么简单易行、容易上手的方法吗&#xff1…

容器组件:角标组件,纵向拖动组件(HarmonyOS学习第四课【4.2】)

Badge&#xff08;角标组件&#xff09; 可以附加在单个组件上用于信息标记的容器组件。 说明 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 支持单个子组件。 说明 子组件类型&#xff1a;系统组件…

Online RL + IL : Active Policy Improvement from Multiple Black-box Oracles

ICML 2023 paper code 紧接上一篇MAMBA&#xff0c;本文在同种问题设定下的在线模仿学习方法。 Intro 文章提出了一种新的模仿学习算法&#xff0c;名为 MAPS&#xff08;Max-aggregation Active Policy Selection&#xff09;和其变体 MAPS-SE&#xff08;Max-aggregation A…

SSL证书对于网络安全的重要作用

SSL证书是一种数字证书&#xff0c;它通过加密技术确保了客户端&#xff08;如浏览器&#xff09;与服务器之间的数据传输安全。当一个网站安装了SSL证书后&#xff0c;用户在浏览器地址栏中可以观察到HTTPS&#xff08;超文本传输安全协议&#xff09;前缀和挂锁图标&#xff…

点量云流分享:关于实时渲染云推流技术

提到云串流或者云推流很多人可能和游戏关联起来&#xff0c;其实这个技术的应用领域不仅仅是游戏&#xff0c;还有云上旅游、考古、智慧园区、智慧城市、虚拟仿真等等行业。其解决的问题是将一些大型的3D应用程序放在云端&#xff0c;程序在运行的时候也是在云端&#xff0c;这…

可视化大屏C位图:生产线,状态一目了然。

在可视化大屏中&#xff0c;将生产线作为C位图&#xff08;核心位图&#xff09;具有以下价值&#xff1a; 实时监控 生产线作为C位图可以实时展示生产线上的各个环节和工艺的运行状态。通过C位图&#xff0c;操作员可以直观地了解生产线的整体运行情况&#xff0c;及时发现异…

数仓建模理论 之 维度建模

说起维度建模&#xff0c;你不得不知道以下几个概念&#xff1a;事实表、维度表、星型模型、雪花模型、星座模型 维度建模 Ralph Kimball推崇数据集市的集合为数据仓库&#xff0c;同时也提出了对数据集市的维度建模&#xff0c;将数据仓库中的表划分为事实表、维度表两种类型…

uniapp微信小程序使用vscode代替HBuilderX开发uniapp微信小程序并且vscode改动代码微信开发者工具能实时更新

前言 最近公司开发新的小程序项目&#xff0c;经调研综合所有人员考虑&#xff0c;用uni-app Vue3tsvite技术栈开发&#xff1b;而官方推荐使用HBuilderX开发&#xff0c;而考虑到目前公司所有前端人员对VsCode更熟悉&#xff0c;故此总结了一下uniapp项目使用vscode代替HBuild…

网站开发初学者指南:2024年最新解读

在信息交流迅速的时代&#xff0c;网页承载着大量的信息&#xff0c;无论你知道还是不知道&#xff0c;所以你知道什么是网站开发吗&#xff1f;学习网站开发需要什么基本技能&#xff1f;本文将从网站开发阶段、网站开发技能、网站开发类型等角度进行分析&#xff0c;帮助您更…

Java 自动生成数据库设计文档

背景&#xff1a;有时候急需要数据库设计文档&#xff0c;手写太麻烦&#xff0c;这里介绍一款开源组件&#xff0c;可以自动根据数据库连接生成数据库设计文档 废话不多说&#xff0c;直接上代码 导入maven包 <dependency><groupId>org.freemarker</groupId>…

数据分析案例-印度美食数据可视化分析

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

“安”网守护,“乐享”服务——革新教育行业运维与安全体验,锐捷发布两大创新方案

5月11日,锐捷网络举办以“’安‘网联动, ’乐享‘运维”为主题的线上发布会,正式发布了锐捷乐享教育订阅服务方案,以及以新一代智能安全网关为核心的安全防护解决方案。 锐捷网络教育系统部总经理马雪峰为发布会致开场辞,他指出,在数字化浪潮席卷全球的今天,教育行业正进来前所…

未来已来:Spring Cloud引领微服务新纪元

文章目录 1. 引言1.1 微服务架构的兴起与挑战1.2 引入Spring Cloud作为微服务解决方案的重要性 2. 背景介绍2.1 微服务架构概述2.2 Spring Cloud的定位2.3 Spring Cloud特性概览 3. Spring Cloud核心组件3.1 Eureka - 服务发现3.2 Hystrix - 断路器3.3 Ribbon - 客户端负载均衡…

Vue框架—快速入门

目录 &#x1f516; 认识VUE &#x1f516; 第一个Vue程序 &#x1f516; Vue指令 &#x1f3f7;️v-text &#x1f3f7;️v-html &#x1f3f7;️v-model &#x1f3f7;️v-bind &#x1f3f7;️v-on &#x1f3f7;️v-if / v-show &#x1f516; 认识VUE ▐ 在学习…

Spring Security实现用户认证一:简单示例

Spring Security实现用户认证一&#xff1a;简单示例 1 原理1.1 用户认证怎么进行和保存的&#xff1f;认证流程SecurityContext保存 2 创建简单的登录认证示例2.1 pom.xml依赖添加2.2 application.yaml配置2.3 创建WebSecurityConfig配置类2.4 测试 1 原理 Spring Security是…