From f7554b1a655a8aa17f874aa54d902df77b71929b Mon Sep 17 00:00:00 2001 From: Joywayer Date: Fri, 10 Jul 2026 13:43:51 +0800 Subject: [PATCH] =?UTF-8?q?refactor(enemy):=20=E5=88=A0=E9=99=A4=20EnemySt?= =?UTF-8?q?atsSO=20=E6=AD=BB=E5=AD=97=E6=AE=B5(=E6=84=9F=E7=9F=A5/?= =?UTF-8?q?=E5=87=BB=E9=80=80/=E6=94=BB=E5=87=BB=E7=AD=89,=E5=B7=B2?= =?UTF-8?q?=E8=BF=81=20sensor=E6=A7=BD/DamageSourceSO)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- .../Scripts/Editor/Modules/EnemyModule.cs | 2 -- Assets/_Game/Scripts/Enemies/EnemyBase.cs | 23 ------------------ Assets/_Game/Scripts/Enemies/EnemyStats.cs | 2 -- Assets/_Game/Scripts/Enemies/EnemyStatsSO.cs | 24 ------------------- 4 files changed, 51 deletions(-) diff --git a/Assets/_Game/Scripts/Editor/Modules/EnemyModule.cs b/Assets/_Game/Scripts/Editor/Modules/EnemyModule.cs index f9f1bde4..8cc453ef 100644 --- a/Assets/_Game/Scripts/Editor/Modules/EnemyModule.cs +++ b/Assets/_Game/Scripts/Editor/Modules/EnemyModule.cs @@ -166,8 +166,6 @@ namespace BaseGames.Editor.Modules SkillModule.AddChip(card, "HP", s.MaxHP.ToString()); SkillModule.AddChip(card, "防御", s.Defense.ToString()); SkillModule.AddChip(card, "移速", $"{s.WalkSpeed}/{s.RunSpeed}"); - SkillModule.AddChip(card, "攻击", s.AttackDamage.ToString()); - SkillModule.AddChip(card, "感知", $"{s.DetectRange}m"); return card; } diff --git a/Assets/_Game/Scripts/Enemies/EnemyBase.cs b/Assets/_Game/Scripts/Enemies/EnemyBase.cs index bdaf42dc..1043e5a7 100644 --- a/Assets/_Game/Scripts/Enemies/EnemyBase.cs +++ b/Assets/_Game/Scripts/Enemies/EnemyBase.cs @@ -778,29 +778,6 @@ namespace BaseGames.Enemies $"[{(_brain != null ? _brain.CurrentStateName : "-")}] {_currentState}"); } - // ── 运行时:LOS 连线 ──────────────────────────────────────── - if (!Application.isPlaying || _playerTransform == null) return; - - float drawDetectRange = _sensorHub != null - ? _sensorHub.GetSensorRadius(Perception.SensorSlotNames.Aggro) - : -1f; - - Vector3 eyeWorld = transform.position + new Vector3(_statsSO.EyeOffset.x, _statsSO.EyeOffset.y, 0f); - Vector3 playerPos = _playerTransform.position; - float sqrDist = (playerPos - transform.position).sqrMagnitude; - bool inRange = drawDetectRange >= 0f && sqrDist <= drawDetectRange * drawDetectRange; - - // 眼睛位置小圆点(金黄) - Gizmos.color = new Color(1f, 0.9f, 0.2f, 0.85f); - Gizmos.DrawWireSphere(eyeWorld, 0.07f); - - if (inRange || HasLineOfSight) - { - Gizmos.color = HasLineOfSight - ? new Color(1f, 0.5f, 0f, 0.85f) - : new Color(0.6f, 0.6f, 0.6f, 0.25f); - Gizmos.DrawLine(eyeWorld, playerPos); - } #endif } diff --git a/Assets/_Game/Scripts/Enemies/EnemyStats.cs b/Assets/_Game/Scripts/Enemies/EnemyStats.cs index fad5f96f..cc05faca 100644 --- a/Assets/_Game/Scripts/Enemies/EnemyStats.cs +++ b/Assets/_Game/Scripts/Enemies/EnemyStats.cs @@ -27,8 +27,6 @@ namespace BaseGames.Enemies // ── AI 追击配置(透传 SO)────────────────────────────────────────── public float MaxChaseDistance => _config?.MaxChaseDistance ?? 15f; public float LoseLinkTimeout => _config?.LoseLinkTimeout ?? 2f; - public float AlertDuration => _config?.AlertDuration ?? 0.6f; - public float InvestigateDuration => _config?.InvestigateDuration ?? 3f; public float HomeRadius => _config?.HomeRadius ?? 0.5f; /// diff --git a/Assets/_Game/Scripts/Enemies/EnemyStatsSO.cs b/Assets/_Game/Scripts/Enemies/EnemyStatsSO.cs index e86d754d..1ac7eed9 100644 --- a/Assets/_Game/Scripts/Enemies/EnemyStatsSO.cs +++ b/Assets/_Game/Scripts/Enemies/EnemyStatsSO.cs @@ -10,8 +10,6 @@ namespace BaseGames.Enemies [Serializable] public struct HitTierConfig { - [Tooltip("重击(Stagger)触发伤害阈值;伤害 >= 此值进入 Stagger")] - [Min(0)] public int heavyHitThreshold; [Tooltip("击飞(KnockUp)触发伤害阈值;需同时设置 DamageFlags.Launch;0 = 仅依赖 Launch 标志")] [Min(0)] public int launchThreshold; [Tooltip("击飞纵向冲量")] @@ -39,10 +37,7 @@ namespace BaseGames.Enemies [Min(0f)] public float RunSpeed = 4f; [Header("战斗")] - [Min(0)] public int AttackDamage = 10; - [Min(0f)] public float AttackRange = 1.5f; [Min(0f)] public float AttackCooldown = 1f; - [Min(0f)] public float DetectRange = 6f; [Header("追击 & AI 阶段")] [Tooltip("是否有警觉状态:勾选=未发现态进入视野先进警觉(朝向+警觉动画)再追击;不勾选=进入追逐感知直接追击")] @@ -51,32 +46,13 @@ namespace BaseGames.Enemies [Min(0f)] public float MaxChaseDistance = 15f; [Tooltip("视线丢失判定超时(s);超过此时长无视线则切换搜查")] [Min(0f)] public float LoseLinkTimeout = 2f; - [Tooltip("Alert 阶段持续时长(s);短暂警觉动作后进入追击")] - [Min(0f)] public float AlertDuration = 0.6f; - [Tooltip("搜查最后可见位置后的等待时长(s)")] - [Min(0f)] public float InvestigateDuration = 3f; [Tooltip("归位到达判定半径(m)")] [Min(0.01f)] public float HomeRadius = 0.5f; - [Header("击退(作为来源时)")] - [Min(0f)] public float KnockbackForce = 5f; - [Min(0f)] public float HitStunDuration = 0.3f; - [Header("受击分级")] [Tooltip("Stagger / KnockUp 伤害阈值及击飞参数")] public HitTierConfig HitTiers; - [Header("视线检测(遗留配置,已迁移到 PhysicsPerceptionSystem 各 Slot 的 losBlockMask)")] - [Tooltip("相对 transform.position 的眼睛偏移量")] - public Vector2 EyeOffset = new Vector2(0f, 0.8f); - [Tooltip("遮挡 LOS 的物理图层")] - public LayerMask LOSBlockingMask = 1; // Default layer - - [Header("感知角度")] - [Tooltip("前向感知扇形半角(度)。0 = 关闭方向检查,按完整圆形感知")] - [Range(0f, 180f)] - public float DetectAngleDeg = 0f; - [Header("警戒传播(Group Alert)")] [Tooltip("发现玩家时通知周围同伴进入 Alert 的半径(m);0 = 关闭")] [Min(0f)]