【制作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,一经查实,立即删除!

相关文章

C语言指向结构体数组的指针如何应⽤?

一、问题 在使⽤数组时&#xff0c;可以⽤指向数组或数组元素的指针和指针变量。同样&#xff0c;在结构体类型的数组及其元素中也可以应⽤指针或指针变量来指向。具体怎么应⽤呢&#xff1f; 二、解答 在如下代码中实现指向结构体数组的指针的应⽤。 #include <stdio.h&g…

【华为OD机试-C卷D卷-200分】找城市(C++/Java/Python)

【华为OD机试】-(A卷+B卷+C卷+D卷)-2024真题合集目录 【华为OD机试】-(C卷+D卷)-2024最新真题目录 题目描述 一张地图上有n个城市,城市和城市之间有且只有一条道路相连:要么直接相连,要么通过其它城市中转相连(可中转一次或多次)。城市与城市之间的道路都不会成环。 当…

token存入前端的请求头中,后端获取【秒杀项目】

token存入前端的请求头中,后端获取【秒杀项目】 前言token存入前端的请求头中,后端获取【秒杀项目】token存入前端的请求头中后端获取 前言 2023-08-28 17:34:39 token存入前端的请求头中,后端获取【秒杀项目】 token存入前端的请求头中 function set_login_status() {var …

数据库设计大题详解

大题一&#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…

头歌答案哪里找

头歌EduCoder平台实训答案在此&#xff1a;实训笔记 有些作业是在难写&#xff0c;参考上面的连接地址吧&#xff0c;看看有没有自己想要的解答。

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

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

Win端交叉编译鸿蒙Ohos Native层第三方库流程

1. 概述 鸿蒙端SDK开发需要依赖使用到的三方库(如OpenCV、其他C库等)&#xff0c;以下为Windows端交叉编译Ohos端三方库流程 2. 准备工作 与Android NDK交叉编译相类似&#xff0c;我们首先需要下载OpenHarmony NDK(包含在OpenHarmony SDK中)&#xff0c;这里笔者使用IDE中自…

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;将数据仓库中的表划分为事实表、维度表两种类型…

为什么状态机最好要采用独热码

在状态机的编码方式中&#xff0c;我们常用到三种编码方式&#xff0c;分别是二进制编码、格雷码、独热码。 二进制编码&#xff1a;也称连续编码&#xff0c;属于压缩编码方式&#xff0c;可以使用较少的触发器对应更多的状态&#xff1b; 格雷码&#xff1a;属于压缩编码方…

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

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

什么是元宇宙?

元宇宙&#xff08;Metaverse&#xff09;是一个由虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;、区块链、人工智能&#xff08;AI&#xff09;等多种先进技术融合构建的数字化虚拟世界。这个世界不仅限于一个简单的虚拟环境&#xff0c;而是一个能…