From 39001a600fcae2bcf27c225df8752d75fb92fef4 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 31 十月 2025 11:18:26 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs | 32 +++++++++++++++++++-------------
1 files changed, 19 insertions(+), 13 deletions(-)
diff --git a/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs b/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs
index f67e214..09c334f 100644
--- a/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs
+++ b/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs
@@ -7,18 +7,18 @@
private Vector2 start;
private Vector2 end;
- public StraightBulletCurve(BattleObject caster, SkillConfig skillConfig, BattleEffectPlayer bulletEffect, RectTransform target, HB427_tagSCUseSkill tagUseSkillAttack, Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit)
- : base(caster, skillConfig, bulletEffect, target, tagUseSkillAttack, onHit)
- {
- BattleDebug.LogError("StraightBulletCurve created bulletTrans is null = " + (bulletTrans == null).ToString());
+ public StraightBulletCurve(BattleObject caster, SkillConfig skillConfig, BattleEffectPlayer bulletEffect, RectTransform target, List<HB427_tagSCUseSkill.tagSCUseSkillHurt> hurtList, int bulletIndex, Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit)
+ : base(caster, skillConfig, bulletEffect, target, hurtList, bulletIndex, onHit)
+ {
+
}
public override void Reset()
{
base.Reset();
- start = WorldToLocalAnchoredPosition(bulletTrans.position);
+ start = WorldToLocalAnchoredPosition(bulletTrans.position) + bulletOffset;
end = WorldToLocalAnchoredPosition(target.position);
-
+ duration = Vector2.Distance(start, end) / skillConfig.BulletFlySpeed;
// BattleUtility.MarkStartAndEnd(bulletTrans, target);
}
@@ -28,23 +28,29 @@
if (bulletTrans == null)
{
- BattleDebug.LogError("BulletTrans is null, cannot run StraightBulletCurve");
- return;
+ Debug.LogError("BulletTrans is null, cannot run StraightBulletCurve");
}
elapsed += Time.deltaTime;
- float t = Mathf.Clamp01(elapsed / 0.3f);
+ float t = Mathf.Clamp01(elapsed / duration);
Vector2 pos = Vector2.Lerp(start, end, t);
- bulletTrans.anchoredPosition = pos;
+ if (null != bulletTrans)
+ {
+ bulletTrans.anchoredPosition = pos;
+
+ }
Vector2 dir = end - start;
- float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
- bulletTrans.localRotation = Quaternion.Euler(0, 0, angle);
+ float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg + (caster.Camp == BattleCamp.Red ? 0 : 180);
+ if (null != bulletTrans)
+ {
+ bulletTrans.rotation = Quaternion.Euler(0, 0, angle);
+ }
if (t >= 1f)
{
finished = true;
- onHit?.Invoke(0, hurts);
+ onHit?.Invoke(mBulletIndex, hurts);
}
}
}
\ No newline at end of file
--
Gitblit v1.8.0