Cocos Creator 3D 射线检测问题

想要实现的功能:通过touchMove控制角色的朝向,然后根据当前角色所在的位置及朝向构造一条射线,用该射线去检测角色前方有哪些物体。
问题:在start()中是可以正常检测的,结果也没有问题。
在onTouchMove()检测结果为 false,没有检测到当前角色正前方的物体

构造射线的方法为文档中的方法:

  1. 通过 起点 + 射线上的另一点,如 ray 的静态接口 fromPoints 中:
import { geometry, Vec3 } from "cc";
// 构造一条从原点出发,指向 Z 轴的射线
const outRay = new geometry.ray();
geometry.ray.fromPoints(outRay, Vec3.ZERO, Vec3.UNIT_Z);

代码:

//当前脚本挂在角色节点下
//构造射线
        let rayStart: Vec3 = this.node.getWorldPosition() //射线起点
        let dir: Vec3 = this.node.forward //当前角色的朝向
        let rayTartget: Vec3 = new Vec3()
        Vec3.multiplyScalar(rayTartget, dir, 10)//射线上的一点  end = start(x, y, z) + 10 * forward(x, y, z);
        Vec3.add(rayTartget, rayStart, rayTartget) 
        let outRay = new geometry.ray();
        geometry.ray.fromPoints(outRay, rayStart, rayTartget)

哪位大佬知道是什么问题吗?

再顶一下!

再顶一下

顶顶顶

@JayceLai

forward 的默认方向是 -z

还有检查一下碰撞盒是否添加了吧

非常感谢!!!
:pray::pray::pray:
这个问题已经解决了,是我设置射线的问题。

问下 怎么解决的 谢谢

遇到什么问题了吗?

是射线哪里设置错了吗