From 8c279427332ae2abf33df0e403736634c48258df Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 04 六月 2026 18:05:06 +0800
Subject: [PATCH] 绑定战场点位特效支持
---
Main/Config/Configs/EffectConfig.cs | 25 ++++++++++++++-----------
Main/System/Battle/BattleField/BattleRootNode.cs | 10 ++++++++++
Main/System/Battle/BattleEffectMgr.cs | 12 +++++++++++-
3 files changed, 35 insertions(+), 12 deletions(-)
diff --git a/Main/Config/Configs/EffectConfig.cs b/Main/Config/Configs/EffectConfig.cs
index 713145a..aeea770 100644
--- a/Main/Config/Configs/EffectConfig.cs
+++ b/Main/Config/Configs/EffectConfig.cs
@@ -1,6 +1,6 @@
锘�//--------------------------------------------------------
// [Author]: YYL
-// [ Date ]: 2025骞�9鏈�2鏃�
+// [ Date ]: 2026骞�6鏈�4鏃�
//--------------------------------------------------------
using System.Collections.Generic;
@@ -23,6 +23,7 @@
public int[] animIndex;
public int audio;
public string nodeName;
+ public int BindPos;
public int notShow;
public int autoDestroy;
public float destroyDelay;
@@ -68,25 +69,27 @@
nodeName = tables[6];
- int.TryParse(tables[7],out notShow);
+ int.TryParse(tables[7],out BindPos);
- int.TryParse(tables[8],out autoDestroy);
+ int.TryParse(tables[8],out notShow);
- float.TryParse(tables[9],out destroyDelay);
+ int.TryParse(tables[9],out autoDestroy);
- int.TryParse(tables[10],out isLoop);
+ float.TryParse(tables[10],out destroyDelay);
- int.TryParse(tables[11],out frontBack);
+ int.TryParse(tables[11],out isLoop);
- float.TryParse(tables[12],out delayPlay);
+ int.TryParse(tables[12],out frontBack);
- if (tables[13].Contains("["))
+ float.TryParse(tables[13],out delayPlay);
+
+ if (tables[14].Contains("["))
{
- effectPos = JsonMapper.ToObject<int[]>(tables[13]);
+ effectPos = JsonMapper.ToObject<int[]>(tables[14]);
}
else
{
- string[] effectPosStringArray = tables[13].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ string[] effectPosStringArray = tables[14].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
effectPos = new int[effectPosStringArray.Length];
for (int i=0;i<effectPosStringArray.Length;i++)
{
@@ -94,7 +97,7 @@
}
}
- float.TryParse(tables[14],out effectScale);
+ float.TryParse(tables[15],out effectScale);
}
catch (Exception exception)
{
diff --git a/Main/System/Battle/BattleEffectMgr.cs b/Main/System/Battle/BattleEffectMgr.cs
index eb29191..12f1cb8 100644
--- a/Main/System/Battle/BattleEffectMgr.cs
+++ b/Main/System/Battle/BattleEffectMgr.cs
@@ -82,12 +82,22 @@
return null;
}
+ bool isRedCamp = camp == BattleCamp.Red;
+
+ if (effectCfg.BindPos > 0 && effectCfg.BindPos <=7)
+ {
+ var go = battleField.battleRootNode.GetRootNode(camp, effectCfg.BindPos);
+ if (go != null)
+ {
+ parent = go.transform;
+ }
+ }
+
if (!effectDict.ContainsKey(effectId))
{
effectDict[effectId] = new List<BattleEffectPlayer>();
}
- bool isRedCamp = camp == BattleCamp.Red;
BattleEffectPlayer effectPlayer = BattleEffectPlayer.Create(effectId, battleField, battleField.battleRootNode.transform, isRedCamp, _scaleRatio);
// 璁剧疆鐗规晥缂╂斁鍜屾柟鍚�
diff --git a/Main/System/Battle/BattleField/BattleRootNode.cs b/Main/System/Battle/BattleField/BattleRootNode.cs
index 4adf62b..9120664 100644
--- a/Main/System/Battle/BattleField/BattleRootNode.cs
+++ b/Main/System/Battle/BattleField/BattleRootNode.cs
@@ -84,4 +84,14 @@
public GameObject skillMaskNode;
public GameObject battleStartNode;
+
+ public GameObject GetRootNode(BattleCamp battleCamp, int pos)
+ {
+ if (pos <= 0 || pos > 7)
+ {
+ pos = 2;
+ }
+ var rootNodeList = battleCamp == BattleCamp.Red ? redTeamNodeList : blueTeamNodeList;
+ return rootNodeList[pos - 1];
+ }
}
\ No newline at end of file
--
Gitblit v1.8.0