| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 | | 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<HB427_tagSCUseSkill.tagSCUseSkillHurt> hurtList, |  |         int bulletIndex, |  |         Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> 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; |  |     } |  | } | 
 |