需求:在没有碰撞体的前提下检测到鼠标点击的mesh。
思路:获得所有的mesh,然后通过算法比较mesh中每一个三角形面片与射线是否相交,将所有相交点与射线origin之间的长度进行排序,最短的即为需要获得的mesh。
上干活,首先是射线与三角形相交算法,通过u,v或者t 可以算到相交点
/// <summary>
/// 射线与三角形相交 Vector3版本
/// 射线: orig + dir * t
/// 三角形:(1 - u - v)v0 + u * v1 + v * v2
/// </summary>
/// <param name="orig">起点</param>
/// <param name="dir">射线方向</param>
/// <param name="v0">三角形点1</param>
/// <param name="v1">三角形点2</param>
/// <param name="v2">三角形点2</param>
/// <param name="t">结果 t</param>
/// <param name="u">结果 u </param>
/// <param name="v">结果 v</param>
/// <returns&