木蘑菇

This commit is contained in:
GL 2025-01-04 14:17:19 +08:00
parent 861ba21b13
commit f1d8219300

View File

@ -401,4 +401,40 @@ public class Attack : MonoBehaviour
} }
} }
public void ShanXingAttack()//扇形散射
{
if (bulletPrefab == null)
{
Debug.LogError("子弹预制体为空");
return;
}
float halfAngle = Angle / 2f; // 半个散射角度范围
float angleStep = Angle / (BulletNumber - 1); // 每个子弹之间的角度间隔
for (int i = 0; i < BulletNumber; i++)
{
// 改变子弹方向,根据角色自身的攻击范围来计算
GameObject BulletGamobj = GameObject.Instantiate(bulletPrefab, this.transform.root);
Bullet bulletScript = BulletGamobj.GetComponent<Bullet>();
bulletScript.role = role;
bulletScript.attackObj = this;
bulletScript.bulletData.BulletSpeed *= (1 + roleBulletSpeedAdd);
bulletScript.Target = Target;
// 计算当前子弹的发射角度
float currentAngle = -halfAngle + angleStep * i; // 当前子弹的偏移角度
// 使用偏移角度调整子弹的发射方向
Vector3 scatterDirection = Quaternion.Euler(0, 0, currentAngle) * direction; // 在当前方向上添加旋转
BulletGamobj.transform.up = scatterDirection;
BulletGamobj.transform.position = BulletStartPos.position;
bulltes.Add(BulletGamobj);
}
}
} }