This commit is contained in:
2026-09-30 23:50:42 +08:00
parent e38f0832a4
commit 77a8353a79
4 changed files with 98 additions and 27 deletions
@@ -1148,9 +1148,8 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
StartCoroutine(IeShanXing(createFishData, yz, pos, prefab, pathList, time, yz.fishCount, arraySeq));
break;
case "701": // 环形阵:同帧同路径全部生成(无延迟)
for (int li = 0; li < pathList.Count; li++)
Quan(createFishData, yz, pos, prefab, pathList[li], yz.fishCount, time, arraySeq, li);
case "701": // 环形阵:无延迟;同一鱼阵内重复同一条线(同一出生点)时延迟 1s 再发射
StartCoroutine(IeQuan(createFishData, yz, pos, prefab, pathList, time, yz.fishCount, arraySeq));
break;
case "702":
@@ -1238,6 +1237,31 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
}
}
/// <summary>
/// 环形阵:按路线列表遍历生成圈。
/// 正常无延迟(同帧出);⭐ 同一鱼阵内出现重复的同一条线(同一出生点)时,
/// 延迟 1s 再发射,避免两圈叠在出生点。
/// </summary>
private IEnumerator IeQuan(FrameData_CreateFish createFishData, FishArrayConfig yz,
Vector3 pos, GameObject prefab, List<int> pathList, long time, int count, int arraySeq)
{
var usedLines = new HashSet<int>();
for (int lineIndex = 0; lineIndex < pathList.Count; lineIndex++)
{
if (!isResources)
{
yield break;
}
int pathId = pathList[lineIndex];
// ⭐ 该线本次鱼阵已出现过(同一出生点):延迟 1s 再发射
if (!usedLines.Add(pathId))
yield return new WaitForSeconds(1f);
Quan(createFishData, yz, pos, prefab, pathId, count, time, arraySeq, lineIndex);
}
}
/// <summary>
/// 环形阵:在同一路径上生成 count 条鱼,角度均匀分布(360/count)。
/// </summary>
+4 -1
View File
@@ -539,7 +539,10 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
var mon = tripleLockTargets[i];
// 主目标(monCotl_Lock)已在上面加过,跳过避免重复
if (mon == monCotl_Lock) continue;
if (mon == null || mon.isDead || pos == null || !pos.gameObject.activeInHierarchy) continue;
// ⭐ 口径与锁定圈一致:只看是否还在场上(activeInHierarchy)。
// 之前额外用 isDead 过滤,导致死亡动画期间"圈还在、激光少一条"
if (mon == null || !mon.gameObject.activeInHierarchy) continue;
if (pos == null || !pos.gameObject.activeInHierarchy) continue;
_laserTargets.Add(pos);
}
}