コード例 #1
0
        /// <summary>
        /// 返回两个单位的距离
        /// </summary>
        /// <param name="a">单位a</param>
        /// <param name="b">单位b</param>
        /// <returns>单位间的距离</returns>
        public static float Distance(ObjectUnit a, ObjectUnit b)
        {
            float m = 0;

            if (a.Model != null)
            {
                m += a.Model.TransformedMajorSphere.Radius;
            }
            if (b.Model != null)
            {
                m += b.Model.TransformedMajorSphere.Radius;
            }
            return(MathHelper.Clamp(Vector3.Distance(a.Position, b.Position) - m, 0, float.MaxValue));
        }
コード例 #2
0
 /// <summary>
 /// 获得目标相对于源单位前方的夹角的COS值
 /// </summary>
 /// <param name="o">源单位</param>
 /// <param name="target">目标</param>
 /// <returns>夹角的COS值</returns>
 public static float AngleCos(ObjectUnit o, ObjectUnit target)
 {
     return(Vector3.Dot(o.Face, Vector3.Normalize(target.Position - o.Position)));
 }