From cb653cf75b17b9bdca0b5b9e6b88edf1ca72e90c Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 17 十月 2025 09:54:11 +0800
Subject: [PATCH] 0312 删除旧的日常代码3
---
Main/Component/UI/Effect/BattleEffectPlayer.cs | 130 ++++++++++++++++++++++++++++++++-----------
1 files changed, 97 insertions(+), 33 deletions(-)
diff --git a/Main/Component/UI/Effect/BattleEffectPlayer.cs b/Main/Component/UI/Effect/BattleEffectPlayer.cs
index 480cae5..d740f15 100644
--- a/Main/Component/UI/Effect/BattleEffectPlayer.cs
+++ b/Main/Component/UI/Effect/BattleEffectPlayer.cs
@@ -30,11 +30,51 @@
}
}
+ public bool isBindBone = false;
+
public bool isRedCamp = true;
public EffectConfig effectConfig;
public float speedRate = 1.5f;
+ private float m_Alpha = 1f;
+
+ public float Alpha
+ {
+ get
+ {
+ return m_Alpha;
+ }
+ set
+ {
+ if (value == m_Alpha)
+ return;
+
+ m_Alpha = value;
+ OnAlphaChanged();
+ }
+ }
+
+ private void OnAlphaChanged()
+ {
+ if (spineComp != null)
+ {
+ var skeleton = spineComp.Skeleton;
+ skeleton.A = Alpha;
+ spineComp.LateUpdate();
+ }
+
+ for (int i = 0; i < rendererList.Count; i++)
+ {
+ var renderer = rendererList[i];
+ if (renderer != null && renderer.material != null && renderer.material.HasProperty("_Color"))
+ {
+ Color color = renderer.material.color;
+ color.a = Alpha;
+ renderer.material.color = color;
+ }
+ }
+ }
[Header("鎾斁瀹屾瘯绔嬪嵆鍥炴敹")]
public bool isReleaseImmediately = false; //鐣岄潰鐗规晥涓�鑸笉闇�瑕佽嚜鎴戦攢姣侊紝璺熼殢鐣岄潰鎴栬�呯埗瀵硅薄閿�姣佸氨琛�
@@ -58,8 +98,6 @@
protected SkeletonAnimation spineComp;
protected Spine.AnimationState spineAnimationState;
- protected int heroSetedSortingOrder;
-
public GameObjectPoolManager.GameObjectPool pool;
public Action onComplete;
@@ -70,11 +108,13 @@
protected virtual void OnEnable()
{
- if (spineComp != null)
- {
- //闅愯棌锛屼細鏈夐潤鎬佹樉绀洪棶棰�
- spineComp.enabled = false;
- }
+ // if (spineComp != null)
+ // {
+ // //闅愯棌锛屼細鏈夐潤鎬佹樉绀洪棶棰�
+ // spineComp.enabled = false;
+ // }
+
+ ApplySortingOrder();
}
@@ -126,6 +166,8 @@
{
rectTrans.localScale *= effectConfig.effectScale;
}
+
+ spineComp.loop = effectConfig.isLoop != 0;
}
protected virtual void Clear()
@@ -159,24 +201,29 @@
onComplete?.Invoke();
}
- public void SetSortingOrder(int _heroSetedSortingOrder)
+ public Func<bool> funcIsHeroFront;
+
+ public void SetSortingOrder(Func<bool> _isHeroFrontCallback)
{
- heroSetedSortingOrder = _heroSetedSortingOrder;
+ funcIsHeroFront = _isHeroFrontCallback;
- int so = heroSetedSortingOrder;
+ ApplySortingOrder();
+ }
- if (null != blocker && effectConfig != null)
+
+ public void ApplySortingOrder()
+ {
+ if (null != blocker && effectConfig != null && funcIsHeroFront != null)
{
- if (BattleConst.UnactiveHeroSortingOrder == heroSetedSortingOrder)
- {
- so = effectConfig.frontBack == 1 ? BattleConst.UnactiveHeroFrontSortingOrder : BattleConst.UnactiveHeroBackSortingOrder;
- }
- else
- {
- so = effectConfig.frontBack == 1 ? BattleConst.ActiveHeroFrontSortingOrder : BattleConst.ActiveHeroBackSortingOrder;
- }
+ bool isEffectFront = effectConfig.frontBack == 1;
- blocker.SetSortingOrder(so);
+ bool isHeroFront = funcIsHeroFront();
+
+ int finalSortingOrder = isHeroFront ?
+ (isEffectFront ? BattleConst.ActiveHeroActionSortingOrder : BattleConst.ActiveHeroBackSortingOrder) : (isEffectFront ? BattleConst.UnactiveHeroFrontSortingOrder : BattleConst.UnactiveHeroBackSortingOrder);
+
+
+ blocker.SetSortingOrder(finalSortingOrder);
}
}
@@ -269,6 +316,7 @@
{
PlayUnityEffect();
}
+ OnAlphaChanged();
}
protected void PlaySpineEffect()
@@ -286,6 +334,8 @@
spineComp.Initialize(true);
spineComp.timeScale = speedRate;
+ spineComp.skeleton.A = Alpha;
+
spineAnimationState = spineComp.state;
spineAnimationState.Complete -= OnSpineAnimationComplete;
spineAnimationState.Complete += OnSpineAnimationComplete;
@@ -295,19 +345,7 @@
blocker.onSortingChanged = OnSortingChanged;
- if (0 != heroSetedSortingOrder)
- {
- if (BattleConst.UnactiveHeroSortingOrder == heroSetedSortingOrder)
- {
- heroSetedSortingOrder = effectConfig.frontBack == 1 ? BattleConst.UnactiveHeroFrontSortingOrder : BattleConst.UnactiveHeroBackSortingOrder;
- }
- else
- {
- heroSetedSortingOrder = effectConfig.frontBack == 1 ? BattleConst.ActiveHeroFrontSortingOrder : BattleConst.ActiveHeroBackSortingOrder;
- }
-
- blocker.SetSortingOrder(heroSetedSortingOrder);
- }
+ ApplySortingOrder();
spineComp.enabled = true;
@@ -589,4 +627,30 @@
animator.speed = speedRate;
}
}
+
+ public void BindBone(SkeletonAnimation skeletonAnim, string v)
+ {
+ Bone bone = skeletonAnim.skeleton.FindBone(v);
+
+ if (null == bone)
+ {
+ return;
+ }
+
+ isBindBone = true;
+
+ BoneFollower boneFollower = gameObject.AddMissingComponent<BoneFollower>();
+ boneFollower.boneName = v;
+ boneFollower.skeletonRenderer = skeletonAnim;
+
+ boneFollower.followBoneRotation = false;
+ boneFollower.followXYPosition = true;
+ boneFollower.followZPosition = false;
+ boneFollower.followLocalScale = false;
+ boneFollower.followParentWorldScale = false;
+ boneFollower.followSkeletonFlip = false;
+
+ boneFollower.Initialize();
+ boneFollower.LateUpdate();
+ }
}
--
Gitblit v1.8.0