diff --git a/Role/Attack.cs b/Role/Attack.cs index 4f78126..677711c 100644 --- a/Role/Attack.cs +++ b/Role/Attack.cs @@ -403,7 +403,7 @@ public class Attack : MonoBehaviour } - public void ShanXingAttack()//扇形散射 + public void ShanXingAttack() // 扇形散射 { if (bulletPrefab == null) { @@ -416,25 +416,32 @@ public class Attack : MonoBehaviour for (int i = 0; i < BulletNumber; i++) { - // 改变子弹方向,根据角色自身的攻击范围来计算 + // 创建子弹实例 GameObject BulletGamobj = GameObject.Instantiate(bulletPrefab, this.transform.root); Bullet bulletScript = BulletGamobj.GetComponent(); + // 设置子弹的基本信息 bulletScript.role = role; bulletScript.attackObj = this; - bulletScript.bulletData.BulletSpeed *= (1 + roleBulletSpeedAdd); + bulletScript.bulletData.BulletSpeed *= (1 + roleBulletSpeedAdd); // 根据角色的加成调整子弹速度 bulletScript.Target = Target; // 计算当前子弹的发射角度 float currentAngle = -halfAngle + angleStep * i; // 当前子弹的偏移角度 // 使用偏移角度调整子弹的发射方向 - Vector3 scatterDirection = Quaternion.Euler(0, 0, currentAngle) * direction; // 在当前方向上添加旋转 + // 只在z轴上进行旋转(2D场景) + Vector3 scatterDirection = Quaternion.Euler(0, 0, currentAngle) * direction; // 只旋转z轴 + // 设置子弹的方向和位置 BulletGamobj.transform.up = scatterDirection; BulletGamobj.transform.position = BulletStartPos.position; + + // 将子弹加入子弹列表 bulltes.Add(BulletGamobj); } } + + }