math - rayPlaneIntersection (like) 示例或类似功能
问题描述
我正在与使命召唤中的机器人一起工作,他们的视力是用 bulletTracePassed 函数计算的,没有其他方法可以计算,因为没有真正的机器人函数,所以如果子弹可以从 A 点传递到另一点,这将返回 true B 返回真/假,这在大多数情况下都很有效,但在这两种情况下会导致混乱,主要是:
- 当映射器没有在墙上放置任何类型的 iDFLAGS_PENETRATION 时(意味着墙壁对子弹没有抵抗力,所以没有接触/击中,子弹穿过就像什么都没有。
- 当我们中间有树木、植物等时
在这 2 种情况下,机器人会在不应该看到其他玩家的情况下,而在丛林之类的地图中,玩起来简直就是地狱。
好的,进行这些修复的正确方法是修复地图,在这些墙壁和茂密的植被中添加正确的穿透力,但这是不可能的,因为有几个模型制作者的几个地图,甚至官方发布也有同样的问题,并且当然,我们没有他们的资源来应用这些修复程序。
所以做到这一点的唯一方法是通过脚本,我正在考虑做这样的事情:
我有 3D 中攻击者机器人的眼睛位置,例如 (x,y,z),例如 (1000,500,22),以及击中其他玩家的位置,例如 (2000,1200,60),其中由函数 bulletTracePassed 返回。
但是例如,在一堵墙上我有一部分没有任何碰撞,所以机器人可以看穿它们,所以想设置墙的中间位置(1600,800,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.
任何人都可以在我的例子中指出这种用法的例子吗?或者任何其他可能给我相同(甚至相似)结果的功能,让我至少开始解决这个问题?我知道这不是一件容易的事,这就是我在这里发帖的原因,经过许多小时试图独自完成但没有成功。
非常感谢您。
解决方案
推荐阅读
- python - 修改值后重新分配 Pandas 列的切片
- jquery - 服务器代码在 Ajax 超时后继续执行
- android - 错误:E/RecyclerView:未连接适配器;跳过片段上的布局
- maven - 使用 maven 版本时设置 npm 版本:设置目标
- python-requests - 如何使用 RequestsLibrary 在 Robot Framework 中传递会话 Cookie
- sql - 执行 COUNT DISTINCT 时运算符的操作数无效
- javascript - 如何在 PHP 中 ajax 成功后设置空图像文件?
- java - Selenium 找不到页面上可见的 ul 元素
- jsf - JSF - f:param: 参数未发送但 jessionid 和 ln=javax.faces
- html - 覆盖 li 元素的用户代理样式