Пример #1
0
 /// <summary>
 /// 射线检测Actor
 /// </summary>
 /// <param name="ray">指定的射线</param>
 /// <param name="layerid">参与检测的层</param>
 /// <returns>射线检测到Actor(射线从起点发出,第一个检测到的Actor),若没有检测到任何Actor,返回NULL</returns>
 static public Actor IntersectWorld_Actor(ref Ray ray, LayerID layerid)
 {
     if (LayerID.Min <= layerid && layerid < LayerID.Max)
     {
         return(ICall_IntersectWorld_Actor(ref ray, LayerMark.ConvertToMark(layerid)));
     }
     return(null);
 }
Пример #2
0
 /// <summary>
 /// 射线检测指定的Actor
 /// </summary>
 /// <param name="act">要检测的Actor</param>
 /// <param name="ray">射线</param>
 /// <param name="layerid">参与检测的层</param>
 /// <param name="pos">射线打到Actor上的点的坐标</param>
 /// <returns>是否检测到Actor</returns>
 static public bool IntersectActor(Actor act, ref Ray ray, LayerID layerid, out Vector3 pos)
 {
     if (LayerID.Min <= layerid && layerid < LayerID.Max)
     {
         return(ICall_IntersectWorld_IntersectActor(act, ref ray, LayerMark.ConvertToMark(layerid), out pos));
     }
     pos = Vector3.Zero;
     return(false);
 }
Пример #3
0
 /// <summary>
 /// 获取射线检测到场景里(网格)Actor的第一个点的坐标
 /// </summary>
 /// <param name="ray">指定的射线</param>
 /// <param name="layerid">参与检测的层</param>
 /// <param name="outPoint">返回值(检测到的第一个点的坐标)</param>
 static public void IntersectWorld_Point(ref Ray ray, LayerID layerid, out Vector3 outPoint)
 {
     if (LayerID.Min <= layerid && layerid < LayerID.Max)
     {
         ICall_IntersectWorld_Point(ref ray, LayerMark.ConvertToMark(layerid), out outPoint);
     }
     else
     {
         outPoint = Vector3.Zero;
     }
 }