http://www.cnblogs.com/yuji/archive/2012/09/03/2669260.html 1.已知两个向量dirA,dirB。 Vector3 dirA = new Vector3(-1,1,0); Vector3 dirB = new Vector3(-1,1,1); 2.使向量处于同一个平面,这里平面为XZ dirA = dirA - Vector3.Project(dirA,Vecotr3.up); dirB = dirB - Vector3.Project(dirB,Vecotr3.up); 注:Vector3.Project计算向量在指定轴上的投影,向量本身减去此投影向量就为在平面上的向量 3.计算角度 float angle = Vector3.Angle(dirA,dirB); 4.计算方向 float dir = (Vector3.Dot (Vector3.up, Vector3.Cross (dirA, dirB)) < 0 ? -1 : 1); angle *= dir; Vector3.Cross 叉乘返回为同时垂直于两个参数向量的向量,方向可朝上也可朝下,由两向量夹角的方向决定。 Vector3.Dot 点乘意义为两参数向量方向完全相同返回1,完全相反返回-1,垂直返回0。当两向量角度减小,将得到更大的值