前言:每日记录自己学习unity的心得和体会,小弟才疏学浅,如有错误的地方,欢迎大佬们指正,感谢~
第一种
代码方法
传入目标点测试即可
private float ScopeDistance = 2f;//扇形距离
private float ScopeJiaodu = 120;//扇形的角度
//传入目标点位置 判断在不在扇形范围内
private void ScopeIsAnimal(Vector3 vector)
{
float distance = Vector3.Distance(transform.position, vector);//距离
Vector3 norVec = transform.rotation * Vector3.forward * 5;//此处*5只是为了画线更清楚,可以不要
Vector3 temVec = vector - transform.position;
Debug.DrawLine(transform.position, norVec, Color.red);//画出技能释放者面对的方向向量
float jiajiao = Mathf.Acos(Vector3.Dot(norVec.normalized, temVec.normalized)) * Mathf.Rad2Deg;//计算两个向量间的夹角
if (distance < ScopeDistance)
{
if (jiajiao <= ScopeJiaodu * 0.5f)
{
Debug.Log("在扇形范围内");
}
}
}
里面逻辑自己添加就好