『功能项目』回调函数处理死亡【54】

我们打开上一篇53伤害数字UI显示的项目,

本章要做的事情是使用回调函数处理怪物Boss01死亡后增加主角经验值的功能,以及生成一个七秒的升级特效

首先增加一个技能特效重命名为PlayerUpGradeEffect

修改脚本:BossCtrl.cs

修改脚本:PlayerCtrl.cs

保存后运行项目

常用回调函数也有unity

提供的无参类型 - 示例如下

脚本示例 - (示例脚本做解释作用)

示例脚本:PlayerCtrl.cs

其实用回调函数处理怪物的死亡是有缺陷的

用回调函数处理怪物死亡后的逻辑,比如说生成一个升级特效,在怪物死亡时瞬间会生成几十个死亡特效(垃圾),如果事件订阅没有正确地移除,可能会导致内存泄漏。例如,如果一个对象订阅了事件,但之后被销毁,而没有取消订阅,那么这个对象的引用仍然会被事件持有,导致无法被垃圾回收。上文中?.Invoke();在Update()函数中调用,也会存在一定量的性能开销,但使用回调函数优点也有一些,比如解耦合,通过使用事件和委托,可以将事件的发布者和订阅者解耦合,使得代码更加模块化,易于管理和维护。另外,事件和委托提供了一种灵活的方式来响应特定操作,可以在运行时动态地添加或移除事件处理程序。而且可拓展性高,当需要添加新的事件处理程序时,不需要修改现有的代码,只需要订阅事件即可,这使得代码更加可扩展。

接下来文章的内容:

1.事件中心处理怪物死亡

2.窗口可拖拽脚本

3.点击名称寻找地点功能

4.隐藏怪物的生成

5.怪物I攻击范围内的主动攻击

6.掉落坐骑蛋的获取

7.异步传送转换场景

以及开放回合制、坐骑系统、宠物系统、背包系统、神炼系统、商城系统、Boss的目标跟随任务导航系统以及UI播放3D动画效果等等。

具体项目运行效果请关注water1024的b站视频项目演示《破碎纪元》

【Unity回合2.5D】破碎纪元_单机游戏热门视频 (bilibili.com)https://www.bilibili.com/video/BV1rZY4e9Ebs/?spm_id_from=333.999.0.0&vd_source=547091a95b03acfa8e8a9e46ef499cd6

相关推荐
坐井观老天2 小时前
在C#中使用资源保存图像和文本和其他数据并在运行时加载
开发语言·c#
pchmi4 小时前
C# OpenCV机器视觉:模板匹配
opencv·c#·机器视觉
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭6 小时前
C#都可以找哪些工作?
开发语言·c#
boligongzhu8 小时前
Dalsa线阵CCD相机使用开发手册
c#
向宇it20 小时前
【从零开始入门unity游戏开发之——C#篇23】C#面向对象继承——`as`类型转化和`is`类型检查、向上转型和向下转型、里氏替换原则(LSP)
java·开发语言·unity·c#·游戏引擎·里氏替换原则
sukalot20 小时前
windows C#-命名实参和可选实参(下)
windows·c#
小码编匠20 小时前
.NET 下 RabbitMQ 队列、死信队列、延时队列及小应用
后端·c#·.net
我不是程序猿儿1 天前
【C#】Debug和Release的区别和使用
开发语言·c#
lzhdim1 天前
2、C#基于.net framework的应用开发实战编程 - 设计(二、二) - 编程手把手系列文章...
开发语言·c#·.net