类型思考
1、快速知道某物体在自己的前面或者后面,以及夹角(可用来判断攻击范围)
-- 用向量的点乘 float dotResult = Vector3.Dot(this.transform.forward, target.position - this.transform.position); 大于0 在前方,小于0在后方,等于0在同一水平
//1.用单位向量算出点乘结果
dotResult = Vector3.Dot(this.transform.forward, (target.position - this.transform.position).normalized);
//2.用反三角函数得出角度
print("角度-" + Mathf.Acos(dotResult) * Mathf.Rad2Deg);//弧度转成角度
//Vector3中提供了 得到两个向量之间夹角的方法
print("角度2-" + Vector3.Angle(this.transform.forward, target.position - this.transform.position));
#endregion
注意这个角度范围是0到180
//Vector3中提供了 得到两个向量之间夹角的方法
print("角度2-" + Vector3.Angle(this.transform.forward, target.position - this.transform.position));
划线
//画线段
//前两个参数 分别是 起点 终点
//Debug.DrawLine(this.transform.position, this.transform.position + this.transform.forward, Color.red);
//画射线
//前两个参数 分别是 起点 方向
//Debug.DrawRay(this.transform.position, this.transform.forward, Color.white);
Debug.DrawRay(this.transform.position, target.position - this.transform.position, Color.red);