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

相关推荐
℡枫叶℡11 小时前
Unity - 图集大小与内存占用
unity·图集内存
_ZHOURUI_H_11 小时前
Unity MyFramework 用法说明(二十五):使用 AtlasManager 统一管理图集与 Sprite 引用
ui·unity·游戏引擎·unity3d·游戏开发
新手unity自用笔记12 小时前
Unity网络基础_2
unity·游戏引擎
音视频牛哥14 小时前
从数字孪生到机器人操控:Android Unity3D下RTMP/RTSP多路低延迟播放实践
android·unity·音视频·unity rtsp播放器·unity rtmp播放器·rtsp player·rtmp player
派葛穆14 小时前
Unity-原生 JsonUtility 实现 JSON 与TMP UI 交互实战
unity
chenzhou__16 小时前
独立游戏开发日志 ①:从信号博弈到涂色对战——一次玩法重构始
笔记·后端·学习·unity·go·独立游戏
五仁烧饼16 小时前
Unity Addressables 资源依赖治理:规则约束、自动修复与全链路防护
java·unity·游戏引擎
qq_370773091 天前
Unity游戏xLua逆向实战:从SO版本识别到Lua脚本热替换全链路
游戏·unity·lua
mxwin1 天前
Unity Shader 水面 Shader 教程 从 Gerstner 波浪到屏幕折射、焦散、泡沫的完整实现
unity·游戏引擎
噗噗夹的TA之旅1 天前
Shader 学习 21:自定义 Render Feature
学习·游戏·unity·c#·游戏引擎·图形渲染