【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
        }
    }
}
相关推荐
mirrornan7 小时前
3D全景沉浸式看车:虚拟现实重构汽车消费新体验
科技·3d·汽车·vr·3d数字化·3d看车
pixle01 天前
Three.js 快速入门教程【一】开启你的 3D Web 开发之旅
前端·javascript·3d
视觉人机器视觉1 天前
机器视觉中的3D高反光工件检测
人工智能·3d·c#·视觉检测
mirrornan1 天前
从建模到展示,如何实现3D在线预览展示?
3d
3D小将1 天前
STL 在线转 3MF,开启 3D 模型转换新体验
3d·3d格式转换
视觉人机器视觉1 天前
3D与2D机器视觉机械臂引导的区别
人工智能·数码相机·计算机视觉·3d·视觉检测
视觉人机器视觉1 天前
机器视觉3D深度图颜色含义解析
人工智能·3d·c#·视觉检测
fyzy1 天前
QPainter绘制3D 饼状图
qt·3d
mirrornan1 天前
什么是3D可视化?有哪些优势和应用领域?
3d·3d可视化
jimumeta2 天前
VR虚拟展厅如何改变企业展示的传播方式?
3d·vr·虚拟展厅·3d展厅