目录
前言步骤1、加碰撞组件2、在import里引入geometry3、定义一个射线4、在onload里面使用射线5、射线的函数
最后
前言
在cocos creator 3D里,canvas的优先级在3D图层之前,那我们需要点击3D模型的某一处时,就要用到射线了
步骤
1、加碰撞组件
给需要点击的元素加一个cc.BoxColliderComponent碰撞组件,记得设置一下Size大小,否则点击不上 例:
2、在import里引入geometry
import { _decorator, Component, Node, Vec3, SkeletalAnimationComponent, macro,ColliderComponent,RigidBodyComponent,AudioSourceComponent,CameraComponent, PhysicsSystem, SystemEvent,systemEvent,ICollisionEvent, ITriggerEvent ,CCInteger, geometry } from 'cc';
3、定义一个射线
private _ray :geometry.ray = new geometry.ray();
4、在onload里面使用射线
onLoad() {
systemEvent.on(SystemEvent.EventType.TOUCH_START, this.onTouchStart, this);//射线
}
5、射线的函数
onTouchStart(event){
this.mainCamera.screenPointToRay(event._point.x, event._point.y, this._ray);
//基于物理碰撞器的射线检测
//当点击node_touch_1时,控制台打印“点击了外链按钮1”
if (PhysicsSystem.instance.raycast(this._ray)) {
const r = PhysicsSystem.instance.raycastResults;
for (let index = 0; index < r.length; index++) {
const element = r[index];
console.log("当前点击: " + element.collider.node.uuid);
if (element.collider.node.uuid == this.node_touch_1.uuid) {
console.log("点击了外链按钮1");
}
}
}
}
最后
cocos creator 3D学习(一)载入的模型注意事项+画布上查看模型的鼠标键盘操作方法 cocos creator 3D学习(二)总是浮在屏幕最前面的操作按钮及其他 cocos creator 3D学习(三)一些常用的声明 cocos creator 3D学习(四)刚体 cocos creator 3D学习(六)光照+阴影