/// <summary>
        /// 射线检测
        /// </summary>
        /// <param name="hit">检测的结果</param>
        /// <param name="ray">射线</param>
        /// <param name="dist">距离</param>
        /// <param name="checkType">类型</param>
        /// <returns>是否发生碰撞</returns>
        public bool RayCheck(out NCheckResult hit, Ray ray, float dist, LineCheckType checkType)
        {
            NLevel  mainLv  = NLevelEditorEngine.Instance.MainLevel;
            Vector3 lineEnd = ray.Position + ray.Direction * dist;

            return(mainLv.LineCheck(out hit, ray.Position, lineEnd, checkType));
        }
        /// <summary>
        /// 鼠标射线检测
        /// </summary>
        /// <param name="hit">检测的结果</param>
        /// <param name="mousePosition">鼠标位置的屏幕坐标</param>
        /// <param name="dist">射线检测的长度</param>
        /// <param name="checkType">检测碰撞类型</param>
        /// <returns>如何发生碰撞则返回true</returns>
        public void MouseRayCheck(out NCheckResult hit, Point mousePosition, float dist, LineCheckType checkType)
        {
            //Point clientPt = this.PointToClient(mousePosition);
            Point clientPt = mousePosition;
            Ray   ray      = m_view.Camera.GetMouseRay(clientPt.X, clientPt.Y);

            if (!RayCheck(out hit, ray, dist, checkType))
            {
                hit.dist     = 500;
                hit.location = ray.Position + ray.Direction * hit.dist;
            }
        }