【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
        }
    }
}
相关推荐
3DVisionary8 小时前
告别传统检具:蓝光3D扫描开启精密模具“数字化质检”新模式
人工智能·3d·数字化转型·质量控制·蓝光3d扫描·精密模具·可溯源
小雨下雨的雨9 小时前
触手可及的微观世界:基于 Flutter 的 3D 血细胞交互教学应用开发
flutter·3d·华为·矩阵·交互·harmonyos·鸿蒙系统
Mangguo52089 小时前
解锁柔性制造新纪元:Raise3D如何重塑工业生产的想象力
3d·制造
jzshmyt10 小时前
3D 布料物理模拟器
3d
众趣科技1 天前
浅谈空间计算技术基础---3D 高斯泼溅
3d·空间计算·高斯泼溅
军军君011 天前
Three.js基础功能学习十一:动画与音频
前端·javascript·3d·js·threejs·三维
CG_MAGIC1 天前
3ds Max 2026 新功能详解:USD 工作流与重新拓扑工具应用
3d·效果图·建模教程·渲云渲染·渲云
咯哦哦哦哦1 天前
image_to_world_plane 如何计算校正图像(rectified image)的尺寸、比例(Scale)、位姿(Pose)
人工智能·计算机视觉·3d
syker1 天前
3D游戏引擎Bluely Engine 开发手册
开发语言·3d·游戏引擎
大江东去浪淘尽千古风流人物1 天前
【Embodied】具身智能基础模型发展
人工智能·机器学习·3d·机器人·概率论