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

相关推荐
叶帆7 天前
【YFIOs】用C#开发硬件之设备上云
开发语言·unity·c#
久数君7 天前
AI三维建模工具“造形家”:地理场景三维化的高效解决方案
unity·glb·ai算法·ai三维建模工具·地图框选·造形家·城市建筑模型
会思考的猴子7 天前
Unity VFX 属性 Postion 和 TargetPostion
unity
心前阳光8 天前
Unity资源导入之自动化资源导入
unity·自动化·游戏引擎
心前阳光8 天前
Unity之2021.3.45f2c1发布安卓程序遇到的问题
android·unity·游戏引擎
纪纯8 天前
PicoVR Unity Integration SDK 3.4 常用交互API
unity·游戏引擎·vr·pico
龙智DevSecOps解决方案8 天前
3A 游戏优化技术栈:如何打通引擎级分析工具与 DevOps 持续集成管线?
unity·性能优化·游戏开发·技术美术·perforce·unrealengine
葛兰岱尔8 天前
从 SolidWorks 到 Three.js,从 Inventor 到 Unity——制造业CAD模型“几何-语义一体化“转换,不再是天方夜谭!
开发语言·javascript·unity
玉夏8 天前
【Shader基础】UV 与纹理采样 Part1
unity·着色器·uv
zdr尽职尽责8 天前
Unity录像功能
学习·ui·unity·游戏引擎