This commit is contained in:
2026-05-19 17:59:23 +08:00
parent 9b832ca7ad
commit 9addea79a1
6 changed files with 246 additions and 232 deletions
@@ -588,14 +588,27 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
#region ② 炮台旋转系统(RotateModule)
//private void HandleRotate(Vector2 pos)
//{
// if (toggle_Lock.isOn && currSitData.monCotl_Lock != null)
// {
// RotateToLockTarget(currSitData);
// }
// else
// {
// RotateToTouch(currSitData, pos);
// }
//}
private void HandleRotate(Vector2 pos)
{
if (toggle_Lock.isOn && currSitData.monCotl_Lock != null)
// ⭐ 只有真正锁定目标时才自动旋转
if (toggle_Lock.isOn && currSitData.isLock && currSitData.monCotl_Lock != null)
{
RotateToLockTarget(currSitData);
}
else
{
// 锁定开关开着但没有锁定目标 → 允许手动旋转
RotateToTouch(currSitData, pos);
}
}
@@ -631,8 +644,7 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
private void HandleAutoRotate()
{
// 自动开火关闭 → 不自动旋转
if (!toggle_SkillAuto.isOn) return;
// 锁定模式优先
if (toggle_Lock.isOn && currSitData.isLock)
@@ -640,7 +652,8 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
RotateToLockTarget(currSitData);
return;
}
// 自动开火关闭 → 不自动旋转
if (!toggle_SkillAuto.isOn) return;
// 自动扫射(左右摆动)
AutoSweepRotate();
}
@@ -886,10 +899,10 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
private void HandleAutoLock()
{
// 自动锁定必须满足:自动开火 + 锁定开关开启
if (!toggle_SkillAuto.isOn) return;
if (toggle_Lock.isOn) return; // 手动锁定优先
if (!toggle_Lock.isOn) return; // ✔ 自动锁定必须在锁定开关开启时才工作
// TODO: 自动锁定最近鱼 / 最大鱼
// 已经有锁定目标并且还活着,就不重复找
if (currSitData.isLock &&
currSitData.monCotl_Lock != null &&
@@ -901,17 +914,16 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
MonsterContral target = FindAutoLockTarget();
if (target != null)
{
// 这里用怪物本体作为锁定点,你也可以换成某个挂点
currSitData.SetLockTarget(target, target.transform);
SyncLock(target);
}
else
{
// 没有可锁定目标时,清理锁定状态
currSitData.ClearLock();
SyncLock(null);
}
}
private MonsterContral FindAutoLockTarget()
{
if (CreateFishManager.Instance == null ||