This commit is contained in:
2026-10-01 22:26:56 +08:00
parent c14b6e69b4
commit 3c758438b0
3 changed files with 125 additions and 45 deletions
@@ -1239,10 +1239,17 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
if (MonsterMoveLine.dic_BezierCurveDatas.TryGetValue("鱼阵" + pathId, out var bd700))
baseAngle = bd700.start.y > 0f ? 90f : -90f;
for (int i = 1; i <= 17; i++)
// ⭐ 扇形:17 条(单数)以基准角为中心左右对称展开,总张角 150°;
// 顺序从中间往两边:第1条在正中间(0°),之后依次 +step、-step 交替(保证左右对称)
const int fanFishCount = 17;
const float fanTotalAngle = 150f;
float fanStep = fanTotalAngle / (fanFishCount - 1); // 150 / 16 = 9.375°
for (int i = 1; i <= fanFishCount; i++)
{
// 交替正负角度,形成扇形分布(从基准角向两侧±5°~±85°展开)
float angle = i * 5f * (i % 2 == 0 ? -1f : 1f);
// i=1→0°, 2→+9.375°, 3→-9.375°, 4→+18.75°, 5→-18.75° … 16→+75°, 17→-75°
float mag = (i / 2) * fanStep;
float angle = i <= 1 ? 0f : (i % 2 == 0 ? mag : -mag);
// ⭐ 方向判断与原始flipY700一致:路线起点start.y<0的阵绕鱼头轴翻面180°
// (鱼头方向不变,肚背朝向翻转);原始写法为 transform.Rotate(Z,180,Space.Self)
float flipZ = (bd700 != null && bd700.start.y < 0f) ? 180f : 0f;
@@ -1272,7 +1279,7 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
mc.Init(pathId.ToString(), cfg.times, true, yz.arrayNumber);
// ⭐ 鱼阵调试日志:输出每条子鱼生成后的旋转与缩放(排查"有的正有的反")
Debug.Log($"[鱼阵调试] 阵={yz.arrayNumber}(扇形700) pathId={pathId} 第{i}/{16}条 guid={mc.guid} " +
Debug.Log($"[鱼阵调试] 阵={yz.arrayNumber}(扇形700) pathId={pathId} 第{i}/{fanFishCount}条 guid={mc.guid} " +
$"rotation={fish.transform.eulerAngles.ToString("F1")} localScale={fish.transform.localScale.ToString("F3")}");
}
}