From a7548b443024413bf4a8417409b33205bac5bf80 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 23 十月 2025 15:53:25 +0800
Subject: [PATCH] 125 buff特效绑定节点偏移问题
---
Main/System/Battle/Buff/BattleObjectBuffMgr.cs | 7 ++++---
Main/Component/UI/Effect/BattleEffectPlayer.cs | 28 ++++++++++++++++++++++++++++
2 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/Main/Component/UI/Effect/BattleEffectPlayer.cs b/Main/Component/UI/Effect/BattleEffectPlayer.cs
index d740f15..3e3c0d2 100644
--- a/Main/Component/UI/Effect/BattleEffectPlayer.cs
+++ b/Main/Component/UI/Effect/BattleEffectPlayer.cs
@@ -30,6 +30,8 @@
}
}
+ private Bone followedBone;
+
public bool isBindBone = false;
public bool isRedCamp = true;
@@ -224,6 +226,31 @@
blocker.SetSortingOrder(finalSortingOrder);
+ }
+ }
+
+ public void FollowBoneXY()
+ {
+ if (followedBone == null || !isBindBone)
+ {
+ return;
+ }
+
+ Vector2 vector2 = Vector2.zero;
+
+ if (effectConfig.effectPos != null && effectConfig.effectPos.Length >= 2)
+ {
+ vector2 = new Vector2((isRedCamp ? 1f : -1f) * effectConfig.effectPos[0], effectConfig.effectPos[1]);
+ }
+
+ if (spineComp != null)
+ {
+ spineComp.transform.localPosition = new Vector3(followedBone.WorldX + vector2.x, followedBone.WorldY + vector2.y, 0);
+ }
+
+ if (effectTarget != null)
+ {
+ effectTarget.transform.localPosition = new Vector3(followedBone.WorldX + vector2.x, followedBone.WorldY + vector2.y, 0);
}
}
@@ -638,6 +665,7 @@
}
isBindBone = true;
+ followedBone = bone;
BoneFollower boneFollower = gameObject.AddMissingComponent<BoneFollower>();
boneFollower.boneName = v;
diff --git a/Main/System/Battle/Buff/BattleObjectBuffMgr.cs b/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
index 9a5c157..24073a2 100644
--- a/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
+++ b/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
@@ -37,10 +37,11 @@
{
if (effectPlayer.isBindBone)
{
- continue;
+ effectPlayer.FollowBoneXY();
+ return;
}
+ int[] effectPos = effectPlayer.effectConfig.effectPos;
effectPlayer.transform.position = battleObject.heroRectTrans.position;
- var effectPos = effectPlayer.effectConfig.effectPos;
if (null != effectPos && effectPos.Length >= 2)
{
effectPlayer.rectTrans.anchoredPosition += new Vector2(effectPos[0], effectPos[1]);
@@ -158,7 +159,7 @@
BoneFollower boneFollower = effect.AddMissingComponent<BoneFollower>();
- effect.BindBone(battleObject.motionBase.skeletonAnim, "hit");
+ effect.BindBone(battleObject.motionBase.skeletonAnim, effect.effectConfig.nodeName);
HashSet<uint> buffIdSet = new HashSet<uint>();
buffIdSet.Add(vNetData.BuffID);
--
Gitblit v1.8.0