using UnityEngine; public class StoneGolemSkill : UnitSkill { [Header("地裂参数")] [Min(0f)] public float skillDamage = 110f; [Min(0.1f)] public float skillRadius = 2f; [Min(0f)] public float stunDuration = 1f; [Header("技能动画")] [Min(0f)] public float skillAnimationDuration = 0f; [Header("特效")] public GameObject shockwaveEffectPrefab; private bool isSkillReady; public override void ReleaseSkill() { if (unit == null) { return; } unit.FaceCurrentTarget(0f); isSkillReady = true; unit.PlaySkillAnimation(OnSkillFinished, skillAnimationDuration); } // 添加到地裂技能动画的命中帧;在命中帧结算伤害和眩晕。 public void OnSkillHit1() { if (!isSkillReady) { return; } // 生成扩散光圈特效 if (shockwaveEffectPrefab != null) { Vector3 effectPosition = unit.transform.position; var effectObj = Instantiate(shockwaveEffectPrefab, effectPosition, shockwaveEffectPrefab.transform.rotation); // 可选:动态配置特效参数(不配置则使用Prefab默认值) var effect = effectObj.GetComponent(); if (effect != null) { // 根据技能范围动态设置扩散半径 effect.overrideRadius = skillRadius; // 可以设置颜色,例如:effect.overrideColor = new Color(1f, 0.8f, 0.2f, 1f); } } unit.ApplyAreaSkillDamage(skillRadius, skillDamage, false); unit.ApplyAreaStun(skillRadius, stunDuration); isSkillReady = false; } private void OnSkillFinished() { isSkillReady = false; } }