using System; using System.Collections.Generic; using UnityEngine; public class BulletCurveFactory { // 1·直线消失于目标 // 2·直线贯穿消失在屏幕外 // 3·抛物线弧线 // 4·弹射 // 5·透明 public static BulletCurve CreateBulletCurve( BattleObject caster, SkillConfig skillConfig, BattleEffectPlayer bulletEffect, RectTransform target, List hurtList, int bulletIndex, Action> onHit) { BulletCurve curve = null; switch (skillConfig.BulletPath) { case 1: // 直线消失于目标 curve = new StraightBulletCurve(caster, skillConfig, bulletEffect, target, hurtList, bulletIndex, onHit); break; case 2: // 直线贯穿消失在屏幕外 curve = new PenetrateBulletCurve(caster, skillConfig, bulletEffect, target, hurtList, bulletIndex, onHit); break; case 3: // 抛物线弧线 curve = new BezierBulletCurve(caster, skillConfig, bulletEffect, target, hurtList, bulletIndex, onHit); break; case 4: // 弹射 curve = new BounceBulletCurve(caster, skillConfig, bulletEffect, target, hurtList, bulletIndex, onHit); break; default: curve = new BulletCurve(caster, skillConfig, bulletEffect, target, hurtList, bulletIndex, onHit); break; } curve.Reset(); return curve; } }