cocos射线检测多个物体

该代码段展示了在cc游戏引擎中,如何在sse2类的组件上实现从节点世界坐标出发的射线检测。通过获取节点的世界位置,创建Ray对象,并使用PhysicsSystem的raycast方法进行检测,找出与射线相交的物体,包括距离、碰撞器信息等。
摘要由CSDN通过智能技术生成

import { _decorator, Component, geometry, Node, PhysicsSystem, Vec2, Vec3 } from 'cc';

const { ccclass, property } = _decorator;

@ccclass('sse2')

export class sse2 extends Component {

    start() {

        //获取节点的世界坐标点

        let aaef3 = new Vec3()

        this.node.getWorldPosition(aaef3)

        //在节点位置发射一条射线

        const worldRay = new geometry.Ray(aaef3.x,aaef3.y,aaef3.z,0,1,0)

        const mask = 0xffffffff

        const maxDistance = 10000000

        const queryTrigger = true

        //检测多个物体

        const bResult = PhysicsSystem.instance.raycast(worldRay,mask,maxDistance,queryTrigger)

        if(bResult){

            const results = PhysicsSystem.instance.raycastResults

            for(let i = 0; i < results.length; i++){

                const result = results[i]

                const collider = result.collider

                const distance = result.distance

                const hitPoint = result.hitPoint

                const hitNormal = result.hitNormal

                console.log(distance + "aaaaaa")

            }

        }

    }

    update(deltaTime: number) {

       

    }

}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值