【cocos creator】2.x里,使用3D射线碰撞检测

注意点:

1、开启射线检测

cc.director.getPhysics3DManager().enabled = true;

2: 响应射线的物体要加3D碰撞盒 BoxCollider3D

3:响应射线的物体分组group要设置为3D,分组管理里需要勾选3D和3D的碰撞

demo下载:

https://download.csdn.net/download/K86338236/89527924

typescript 复制代码
const { ccclass, property } = cc._decorator;

@ccclass
export default class CameraTouchCtrl extends cc.Component {

    @property(cc.Camera)
    camera: cc.Camera = null;//3D相机

    @property(cc.Node)
    touchNode: cc.Node = null;//2D触摸节点
    start() {
        //开启射线检测
        cc.director.getPhysics3DManager().enabled = true;
        this.touchNode.on(cc.Node.EventType.TOUCH_START, this.onTouchStart, this);
    }

    /**检测射线 */
    onTouchStart(event) {
        let touchLoc = event.touch.getLocation();
        let ray = this.camera.getComponent(cc.Camera).getRay(touchLoc);
        let maxDistance = 1000;//检测的最远距离,如果物体远,需要改大数值
        let rayColliderGroupName = "3D";//碰撞分组,分组管理里需要勾选3D和3D动碰撞
        //响应射线的物体要加3D碰撞盒 BoxCollider3D,分组group设置为3D
        const result = cc.director.getPhysics3DManager().raycastClosest(ray, rayColliderGroupName, maxDistance, false);
        if (result) {
            let box = result.collider.node
            box.scale += 0.01
        }
    }
}
相关推荐
元让_vincent11 小时前
AutoDL 上配置远程桌面运行 3DGS / SLAM 可视化:TurboVNC + XFCE + SSH 隧道完整可行流程
运维·3d·ssh
●VON12 小时前
纯ArkUI实现7层拟物3D环形进度图:零依赖的视觉革命
服务器·3d·app·鸿蒙·von
阿斯加德D14 小时前
《霍格沃茨之遗》风灵月影修改器下载(已汉化)2026最新版
人工智能·测试工具·游戏·3d·游戏程序
在下胡三汉15 小时前
3dmax直接导入加载glb,gltf格式模型插件,支持导入动画材质贴图纹理,可以批量导入
3d·材质·贴图·gltf·glb
ZPC821018 小时前
YOLO + 3D 空间定位 + 抓取姿态 完整方案
yolo·3d
在下胡三汉19 小时前
数控加工中的GLTF/GLB文件:设计与制造的桥接
3d·制造·gltf·glb
一只数据集19 小时前
Unitree G1苹果拾取放置深度数据集:963条高质量RGB-D操作轨迹助力3D感知与机器人学习
人工智能·学习·3d·机器人·制造
溜达的大象20 小时前
三维重建技术与实践:基于NeRF与3DGS
3d
X.AI6661 天前
主流7个大模型测评,谁更懂代码和空间感知?
3d·prompt
huoyueyi2 天前
3D数字孪生项目 LCP 优化指南
前端·3d·几何学