TshitBullect.cs

这个脚本定义了一种特殊的子弹------便便子弹 (TshitBullect),它继承自一个通用的子弹基类 Bullect。它的特殊之处在于:击中敌人后可以附加 减益效果**(debuff)** ,比如减速、持续伤害等,并且减益效果的强度和持续时间会随着炮塔等级(towerLevel)提升

继承关系

  • 父类 :Bullect

声明

声明BullectProperty类型的变量(存储子弹所携带的 减益效果参数-减益效果持续时间、减益效果的强度)

结构体BullectProperty(轻量级的数据结构,使用结构体而非类的目的是减少内存分配,适合频繁创建子弹的场景。

)

复制代码
public struct BullectProperty
{
    public float debuffTime;
    public float debuffValue;
}

在Start() 中初始化

这里根据 炮塔等级 towerLevel 动态计算减益效果的数值:

  • 持续时间 = 等级 × 0.4 秒

  • 减益强度 = 等级 × 0.3

重写方法

protected override void OnTriggerEnter2D(Collider2D collision)

  1. 检查目标对象是否激活,未激活返回

  2. 检查目标对象的标签是否为 "Monster",为true ,向碰撞体发送 "DecreaseSpeed" 消息,参数为 bullectProperty
    *(*使用 SendMessage 方法调用该怪物身上的 DecreaseSpeed 方法,并把 bullectProperty 结构体作为参数传过去。)

  3. 调用基类MonsBullect碰撞逻辑

复制代码
base.OnTriggerEnter2D(collision);

内容补充

使用结构体,可以使不同类型的子弹能携带不同的 debuff 参数,并且这些参数随塔等级成长,并且有很好的扩展性

相关推荐
Msir_Modern3 小时前
Noita 元胞沙盒笔记
算法·unity·c#·游戏引擎·元胞自动机
天天进步20157 小时前
Unity 2020.3 反复提示安全模式:一次 CS0009 与 DLL 文件占用的排查记录
unity·1024程序员节
淡海水9 小时前
07-04-源码-.NET Core GC清扫与压缩
unity·架构·c#·.netcore·gc·1024程序员节
小贺儿开发1 天前
《长征 · 征途》Unity 三维互动沙盘
科技·3d·unity·1024程序员节·地形·互动·沙盘
上班摸鱼下班游戏1 天前
Unity 仿生智能算法 从蚁群算法 开始
算法·unity·游戏引擎
Wanda12141 天前
机器人与机电一体化3D数字孪生机器-Day6
unity·机器人·数字孪生·1024程序员节
淡海水1 天前
07-03-源码-.NET Core GC标记与扫描
unity·c#·.netcore·gc
上班摸鱼下班游戏2 天前
从零开始玩转 DOTween
unity·游戏引擎
阿松爱学习2 天前
【Unity开发】Unity长截图功能实现
unity·c#·游戏引擎
小小数媒成员2 天前
Rect Transform
游戏·unity·游戏引擎