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

相关推荐
玖玥拾1 天前
C# 语言进阶(十四)Unity UI界面开发 + 网络消息联动
服务器·开发语言·网络·ui·unity·c#·游戏引擎
野区捕龙为宠1 天前
Unity 持久化数据
unity·游戏引擎·lucene
郝学胜-神的一滴2 天前
[简化版 GAMES 101] 计算机图形学 17:纹理技术从基础原理到多场景实战应用
c++·unity·游戏引擎·图形渲染·three.js·opengl·unreal
_ZHOURUI_H_2 天前
MyFramework: 同样是 Unity 游戏开发框架,和 HTFramework 的设计取向有什么不同?(下)
unity·游戏引擎·游戏开发·游戏ui·手游开发
小贺儿开发3 天前
Unity 知识库智能问答系统(RAG)
人工智能·unity·ai·大模型·智能问答·知识库·互动
丁小未4 天前
基于MVVM框架的XUUI 扩展的UI管理系统教程
unity·mvvm·ui框架·xuui·ui管理器
丁小未4 天前
基于MVVM框架的XUUI HelloWorld 新手教程
unity·性能优化·c#·游戏引擎
丁小未4 天前
基于MVVM框架的XUUI MoreComplex案例
unity·c#
EQ-雪梨蛋花汤4 天前
【Unity笔记】VR 一体机画面锯齿、模型边缘闪烁、接缝抖动排查:MSAA、Mipmap、Render Scale、Z-Fighting 全流程记录
笔记·unity·vr
YigAin4 天前
Unity Spine 资源出现白边的解决办法
unity·游戏引擎·spine