Math 光线平面交点(like)示例或类似函数

Math 光线平面交点(like)示例或类似函数,math,view,artificial-intelligence,bots,ray,Math,View,Artificial Intelligence,Bots,Ray,我在《使命召唤》中与机器人一起工作,他们的视野是用bulletTracePassed函数计算的,没有其他方法可以计算,因为没有真正的机器人函数,所以如果子弹可以从a点通过B点返回真/假,这将返回真,这很有效大多数时候都很好,但是原因是在这两种情况下,这是一种混乱,主要是: 当地图绘制者没有在墙壁上放置任何类型的iDFLAGS_穿透(意味着墙壁对子弹没有抵抗力,因此没有接触/命中,子弹穿过墙壁就像什么都没有一样) 当我们中间有树木、植物等时 在那2 机器人将看到的案例其他选手不应该的时候

我在《使命召唤》中与机器人一起工作,他们的视野是用bulletTracePassed函数计算的,没有其他方法可以计算,因为没有真正的机器人函数,所以如果子弹可以从a点通过B点返回真/假,这将返回真,这很有效大多数时候都很好,但是原因是在这两种情况下,这是一种混乱,主要是:

  • 当地图绘制者没有在墙壁上放置任何类型的iDFLAGS_穿透(意味着墙壁对子弹没有抵抗力,因此没有接触/命中,子弹穿过墙壁就像什么都没有一样)
  • 当我们中间有树木、植物等时
  • 在那2 机器人将看到的案例其他选手不应该的时候,在丛林般的地图上,玩起来简直是地狱

    好的,做这些修复的正确方法就是修复地图,在那些墙壁和茂密的植被中添加正确的穿透力,但不可能做到这一点,因为有多个修改者制作的多张地图,甚至是有相同问题的官方版本,当然,我们没有他们的来源来应用这些修复

    所以唯一的方法就是通过脚本,我在想这样做:

    我有攻击者机器人眼睛在3D中的位置,比如(x,y,z)(1000500,22),还有击中其他玩家的位置,比如(20001200,60),由bulletTracePassed函数返回

    但例如,在一堵墙中,我有一部分墙没有任何碰撞,因此机器人可以看穿它们,所以我想设置墙的中间位置(1600800,50)和角度(10,-40,-90)以及正方形/平面大小的正方形半径,例如500

    所以我想测试光线是否穿过这个正方形/平面,然后返回false/true,让我用它来让机器人决定是否瞄准“坏”墙后面的这个玩家

    环顾四周,我找到了函数rayPlaneIntersection,它的名字是接缝我想要的,但在我的解决方案中它的工作原理还不正确,因为我看不到任何一种角度,甚至是一个正方形半径来确定它们的大小…或者只对一个点做什么

    rayPlaneIntersectionrayPlaneIntersection(ray0: vec3, ray1: vec3, origin?: vec3 | number[], normal?: vec3 | number[]): vec3 | undefined
    
    Defined in raymath.ts:130
    
    Computes the intersection point of a given ray and a given plane (rooted at [ 0, 0, 0 ]). t = -(dot(plane.xyz, origin) + plane.w) / dot(plane.xyz, ray); The ray intersects when (t > 0.0) && (t < tm) is true.
    
    Parameters
    
    ray0: vec3 Start point of a ray.
    ray1: vec3Far point of a ray, used to derive the ray direction.
    Default value origin: vec3 | number[] = [0.0, 0.0, 0.0]
    Point on a plane with origin [ 0, 0, 0 ].
    Default value normal: vec3 | number[] = [0.0, 1.0, 0.0]
    Normal of the plane with origin [ 0, 0, 0 ].
    Returns vec3 | undefined
    If ray intersects, the intersection point on the plane if the plane was hit.
    
    光线平面相交光线平面相交(光线0:vec3,光线1:vec3,原点?:vec3 |编号[],法线?:vec3 |编号[]):vec3 |未定义
    在raymath中定义。ts:130
    计算给定光线和给定平面(根为[0,0,0])的交点。t=-(点(平面xyz,原点)+平面.w)/点(平面xyz,光线);当(t>0.0)和(t
    任何人都可以在我的Example?或任何其他可能给我相同(甚至类似)结果的函数中指出这种用法的示例,让我至少开始解决这个问题? 我知道这不是一项容易的任务,这就是为什么我在这里发帖的原因,在我花了很多时间试图独自完成这项任务却没有成功之后

    多谢各位