Files
daluandou/Assets/Script/ArcherSkill.cs
T
huadexuan 53d95802e5 ```
feat(gameplay): 更新单位属性和材质配置

- 调整多个单位的基础生命值和攻击力数值平衡
- 修改CoreBattleGround材质的纹理缩放比例
- 更新地砖材质颜色为白色
- 优化纹理资源设置,调整最大纹理尺寸并添加PlayableAds平台支持
- 修复弓箭手技能目标查找逻辑,改用统一的敌人检测方法
- 为水晶矿添加中立阵营设置和光球视觉效果同步
- 调整预制体中的全局缩放参数
- 为狼人和石巨人添加NavMeshAgent组件支持
- 优化水晶矿血条显示位置计算方式
```
2026-09-20 21:52:31 +08:00

50 lines
1.2 KiB
C#

using System.Collections;
using UnityEngine;
public class ArcherSkill : UnitSkill
{
[Min(1)]
public int volleyArrowCount = 3;
[Min(0f)]
public float volleyArrowDamageMultiplier = 0.7f;
[Min(0f)]
public float volleyArrowInterval = 0.15f;
private Coroutine volleyCoroutine;
public override void ReleaseSkill()
{
if (volleyCoroutine != null)
{
StopCoroutine(volleyCoroutine);
}
volleyCoroutine = StartCoroutine(FireVolley());
}
private IEnumerator FireVolley()
{
for (int i = 0; i < volleyArrowCount; i++)
{
// 三连射优先攻击当前目标;目标阵亡后剩余箭矢改打最近敌人。
GameObject volleyTarget = unit.Target != null ? unit.Target : FindNearestOpponent();
if (volleyTarget == null)
{
break;
}
unit.FireSkillProjectile(volleyTarget, volleyArrowDamageMultiplier);
yield return new WaitForSeconds(volleyArrowInterval);
}
volleyCoroutine = null;
}
private GameObject FindNearestOpponent()
{
return unit.FindNearestEnemyForSkill();
}
}