StarBullect.cs

StarBullect 是一个极简的子弹脚本,只实现了碰撞伤害,没有移动、对象池、特效等常见机制。它没有继承 Bullect 很可能是设计用途不同(例如作为无需移动的瞬间伤害触发器)或者是未重构的遗留代码。与标准子弹类对比,它缺少了塔防游戏子弹应有的生命周期管理,需要根据实际需求决定是否要整合到 Bullect 体系中。

代码总览

public class StarBullect : MonoBehaviour

{

public int attackValue; //攻击力数值

private void OnTriggerEnter2D(Collider2D collision)

{

if (!collision.gameObject.activeSelf) return;

if (collision.tag == "Monster" || collision.tag == "Item")

{

collision.SendMessage("TakeDamage", attackValue);

}

}

}

核心方法

private void OnTriggerEnter2D()

  • 检查碰撞到的物体是否激活(activeSelf),未激活则直接返回。

  • 如果碰撞体的标签是 "Monster""Item",则调用 SendMessage("TakeDamage", attackValue) 向该物体发送伤害消息。

  • 没有调用任何销毁、回收、特效生成的逻辑。


为什么 StarBullect 没有继承 Bullect

1. 设计用途不同

  • Bullect 体系是为追踪型、飞行子弹设计的,需要移动、转向、锁定目标、对象池管理。

  • StarBullect 可能是一种不需要移动的子弹 ,例如

    从塔上发射后立即在敌人位置生成一个"星形"范围伤害触发器,不飞行。

    或者是塔的"光环"效果,每次攻击时生成一个瞬间伤害的区域。

    或者是作为炮塔的投射物,但移动逻辑由其他方式控制(如粒子系统、动画事件),不需要脚本驱动移动。

  1. 对象池策略差异
  • StarBullect 如果设计为一次性效果(例如爆炸后自动消失),可能直接使用 Destroy(gameObject, delay) 而不进对象池,因此无需继承 Bullect

差异对比

特性 StarBullect TshitBullect WindmillBullect
继承 MonoBehaviour Bullect Bullect
移动逻辑 无(需外部控制移动) 由父类或外部控制 自带追踪移动 (Translate)
生命周期管理 无(依赖外部销毁) Start 初始化 OnEnable 重置 + 计时器超时销毁
特殊效果 减速 debuff(随等级变化) 目标锁定 + 朝向修正 + 物品偏移
碰撞后行为 仅造成伤害,不销毁自身 (父类可能销毁) 造成伤害 + 特效,但未销毁自身
目标筛选 标签判断 标签判断 + debuff 传递 标签判断 + 额外判定(物品必须为目标)
依赖全局状态 依赖 GameController.Instance(暂停/结束/目标引用)

为什么没有生命周期管理(计时销毁)?

  • 星星子弹可能是瞬发命中的(飞行时间极短,或碰撞后立即由外部销毁),不需要自己计时。

  • 或者由对象池在飞出边界或命中后回收,无需在脚本内硬编码超时。

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