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 参数,并且这些参数随塔等级成长,并且有很好的扩展性

相关推荐
tealcwu4 小时前
【Unity实战】Unity IAP 4.x 在 Windows Store (UWP) 平台上的实现指南
windows·unity·游戏引擎
玉夏4 小时前
【Shader基础】CG/HLSL 基础语法
unity·shader
垂葛酒肝汤7 小时前
Unity的UGUI的坐标
unity
winlife_7 小时前
让 AI 写敌人状态机,并用脚本化场景验证状态转换正确:funplay-unity-mcp 实战
人工智能·unity·游戏引擎·ai编程·状态机·mcp
tealcwu7 小时前
【Unity实战】Unity IAP 5.3 中实现 Windows Custom Store 实战教程
windows·unity·游戏引擎
unityのkiven8 小时前
工作分享1(26.5.27):基于栈实现全局返回逻辑通用架构设计(适配异步 + 确认弹窗)
游戏·unity·c#·客户端架构
winlife_21 小时前
在 Unity 里用 AI 做游戏:funplay-unity-mcp 从安装到第一次让 AI 改场景
人工智能·游戏·unity·ai编程·claude·mcp
qq_205279051 天前
Unity 运行时候会时不时卡顿一下,哪怕是空场景
unity·游戏引擎
美团骑手阿豪1 天前
Unity UGUI自适应分辨率
unity·游戏引擎
LONGZETECH1 天前
软硬协同+故障注入:无人机仿真维修与操控仿真底层算法逻辑拆解
大数据·c语言·算法·3d·unity·无人机