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>