From d84c2d711542e99ae6734a175aa1e76b58b3bbe8 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 15 十月 2025 16:58:25 +0800
Subject: [PATCH] 125 战斗 子弹初始位置设置偏移
---
Main/System/Battle/SkillEffect/BulletCurve/BulletCurve.cs | 7 +++++++
Main/System/Battle/SkillEffect/BulletCurve/BezierBulletCurve.cs | 2 +-
Main/System/Battle/SkillEffect/BulletCurve/BounceBulletCurve.cs | 2 +-
Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs | 2 +-
Main/System/Battle/SkillEffect/BulletCurve/PenetrateBulletCurve.cs | 2 +-
5 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/Main/System/Battle/SkillEffect/BulletCurve/BezierBulletCurve.cs b/Main/System/Battle/SkillEffect/BulletCurve/BezierBulletCurve.cs
index d307197..db0849c 100644
--- a/Main/System/Battle/SkillEffect/BulletCurve/BezierBulletCurve.cs
+++ b/Main/System/Battle/SkillEffect/BulletCurve/BezierBulletCurve.cs
@@ -15,7 +15,7 @@
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;
control = (start + end) / 2 + Vector2.up * 100f;
diff --git a/Main/System/Battle/SkillEffect/BulletCurve/BounceBulletCurve.cs b/Main/System/Battle/SkillEffect/BulletCurve/BounceBulletCurve.cs
index 1f20599..9c1e0a3 100644
--- a/Main/System/Battle/SkillEffect/BulletCurve/BounceBulletCurve.cs
+++ b/Main/System/Battle/SkillEffect/BulletCurve/BounceBulletCurve.cs
@@ -28,7 +28,7 @@
bounceElapsed = 0f;
if (hurtList.Count > 0)
{
- start = WorldToLocalAnchoredPosition(bulletTrans.position);
+ start = WorldToLocalAnchoredPosition(bulletTrans.position) + bulletOffset;
end = WorldToLocalAnchoredPosition(target.position);
duration = Vector2.Distance(start, end) / skillConfig.BulletFlySpeed;
}
diff --git a/Main/System/Battle/SkillEffect/BulletCurve/BulletCurve.cs b/Main/System/Battle/SkillEffect/BulletCurve/BulletCurve.cs
index 974b025..be527cd 100644
--- a/Main/System/Battle/SkillEffect/BulletCurve/BulletCurve.cs
+++ b/Main/System/Battle/SkillEffect/BulletCurve/BulletCurve.cs
@@ -12,6 +12,8 @@
protected RectTransform target;
protected Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit;
+ protected Vector2 bulletOffset = Vector2.zero;
+
protected bool finished = false;
protected float duration = 0f;
protected float elapsed = 0f;
@@ -44,6 +46,11 @@
out localPoint);
bulletTrans.anchoredPosition = localPoint;
}
+
+ if (bulletEffect.effectConfig.effectPos != null && bulletEffect.effectConfig.effectPos.Length >= 2)
+ {
+ bulletOffset = new Vector2(bulletEffect.effectConfig.effectPos[0], bulletEffect.effectConfig.effectPos[1]);
+ }
}
public virtual void Reset()
diff --git a/Main/System/Battle/SkillEffect/BulletCurve/PenetrateBulletCurve.cs b/Main/System/Battle/SkillEffect/BulletCurve/PenetrateBulletCurve.cs
index 33db2ab..b70d473 100644
--- a/Main/System/Battle/SkillEffect/BulletCurve/PenetrateBulletCurve.cs
+++ b/Main/System/Battle/SkillEffect/BulletCurve/PenetrateBulletCurve.cs
@@ -19,7 +19,7 @@
{
base.Reset();
hitTriggered = false;
- start = WorldToLocalAnchoredPosition(bulletTrans.position);
+ start = WorldToLocalAnchoredPosition(bulletTrans.position) + bulletOffset;
end = WorldToLocalAnchoredPosition(target.position);
duration = Vector2.Distance(start, end) / skillConfig.BulletFlySpeed;
Vector2 dir = (end - start).normalized;
diff --git a/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs b/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs
index 1ab621f..09c334f 100644
--- a/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs
+++ b/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs
@@ -16,7 +16,7 @@
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);
--
Gitblit v1.8.0