/// <summary>
///
/// </summary>
/// <param name="attacker">攻击者</param>
/// <param name="attacked">被攻击者</param>
/// <param name="angle">扇形攻击角度范围</param>
/// <param name="radius">扇形半径攻击范围</param>
/// <returns></returns>
public bool UmbrellaAttack(Transform attacker, Transform attacked, float angle, float radius)
{
Vector3 deltaA = attacked.position - attacker.position;
//单位化与单位向量点积求cos角度,反三角求弧度,弧度转角度
float tmpAngle=Mathf.Acos(Vector3.Dot(deltaA.normalized, attacker.forward)) * Mathf.Rad2Deg;
//模小于半径
if (deltaA.magnitude<radius&&tmpAngle<=angle/2)
{
return true;
}
return false;
}
扇形攻击
最新推荐文章于 2022-07-23 23:09:38 发布