This commit is contained in:
2026-09-10 17:23:20 +08:00
parent f2a27655ea
commit e948b2a11a
3 changed files with 28 additions and 13 deletions
@@ -482,21 +482,24 @@ public class MonsterContral : MonoBehaviour
// ⭐ 缓存 yzID 前3字符前缀,避免 UpdateYZMovement 每帧每鱼 Substring 产生 GC
SetYzPrefix(yzID);
// 鱼阵特殊处理:700 系扇形阵根据起点 y 值翻转朝向
if (isyuzhen && _yzPrefix == "700")
// ⭐ 700系扇形阵按起点y值翻转朝向:绕Z轴+180°旋转
// (原为 scale.y 镜像翻转,负缩放有法线翻转/特效异常等副作用;
// rotation 由 Pool.Get 每次重置为本次生成角度,天然无池复用残留)
bool flipY700 = isyuzhen && _yzPrefix == "700" && bezierData.start.y < 0;
if (flipY700)
{
if (bezierData.start.y < 0)
{
var scale = transform.localScale;
scale.y *= -1f;
transform.localScale = scale;
}
transform.Rotate(Vector3.forward, 180f, Space.Self);
}
// ⭐ 预计算 700/701 直线阵的世界起点 + 方向系数
// 原逻辑每帧每鱼 CanvasToWorld(start) + 判断 goUp,现 Init 一次性算好
CacheYzLineMoveData(bezierData);
// ⭐ 翻转(Z+180°)后 transform.up 反向,700 直线阵移动方向同步取反,
// 保持实际游向与翻转前一致(否则起点y<0的700阵鱼会反向游)
if (flipY700)
_yzLineDir = -_yzLineDir;
fishenum = (FishTypeEnum)monsterData.fishTypeConfig.fishType;
// isMove=false 的鱼不需要移动路线,直接归位到 (0,0,0)