cocos 触摸2d屏幕拖动3d节点思路

server/2024/9/23 1:35:40/

根据屏幕点击的2d坐标,以及3d摄像机,生成一条带方向的3d射线检测,被射线碰撞的物体,就可以获取到射线碰撞到3d物体上的具体坐标点,然后根据这个坐标点设置被拖动3d节点的位置。

核心代码:

//触摸移动onTouchMove(event: EventTouch) {//射线检测是否碰到其他方块,并修改显示颜色。let touchPos = event.getLocation();console.log('触摸移动:', touchPos,event.touch);if (!this.dragNode) { //有拖拽节点才进行移动。return;}//拖拽let point = new Vec3(1, 1, 0);// this.dragNode.setPosition(point);let ray = this.mainCamera.screenPointToRay(touchPos.x, touchPos.y);// console.log('ray',ray,PhysicsSystem.instance.raycastClosest(ray))if (PhysicsSystem.instance.raycastClosest(ray)) {const res = PhysicsSystem.instance.raycastClosestResult;console.log('移动位置:',res.hitPoint)const hitNode = res.collider.node;// this.dragNode.setPosition(res.hitPoint.x,res.hitPoint.y,res.hitPoint.z);this.dragNode.setPosition(res.hitPoint.x,1,res.hitPoint.z);if (hitNode.name.startsWith('tiled')) {this.cancelTiled();hitNode.getComponent(MeshRenderer).material = this.tiledImgActive;this.tiledNodeActive = hitNode;} else {this.cancelTiled();}} else {this.cancelTiled();}}

核心属性:res.hitPoint


http://www.ppmy.cn/server/98341.html

相关文章

职业本科大数据实训室

一、职业本科大数据实训室建设背景 在数字化浪潮汹涌澎湃的今天,大数据已跃升为引领社会进步和经济发展的新引擎。随着《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》的深入实施,数字化转型作为国家战略的重要组成部分&…

LlamaIndex 实现 React Agent

React Agent 是指 LLM 对问题自行推理并调用外部工具解决问题,如下图所示,通过一些推理步骤最终找到想要的答案。 LlamaIndex 提供了实现 React Agent 的框架,通过框架可以轻松的实现上图中的步骤。那么,如果不用 LlamaIndex 应该…

生成式人工智能安全评估体系构建

文章目录 前言一、人工智能安全治理的现状1.1 国际安全治理现状1.2 国内安全治理现状二、构建人工智能安全评估体系1.1 需要对生成式人工智能技术的安全性、可靠性、可控性、公平性等维度进行全面的考量。1.2 应对生成式人工智能全维度风险。1.3 在体系化应对框架中,应明确法律…

el-table-column字段格式化转换,formatter属性使用

el-table-column字段格式化转换,formatter属性使用 el-table-column是element ui框架中table的子元素,用于控制单列字段的展示,本文介绍el-table-column的formatter属性的使用 element ui的table-column官方文档地址:https://el…

Simulink函数如何绑定到状态

Simulink函数的绑定行为 当Simulink函数位于某个状态内时,该函数会绑定到该状态。绑定会导致以下行为: 函数调用只能在状态操作和状态及其子状态内的转换中发生。 当进入状态时,该功能启用。 当状态退出时,该功能被禁用。 例如&…

数据结构初阶最终讲:排序

数据结构初阶最终讲:排序 1.排序的概念及其运用1.1什么是排序1.2排序的运用1.3常见排序算法 2.冒泡排序3.直接插入排序4.堆排序5.测试代码:排序性能对比5.1直接插入排序时间复杂度分析 6.希尔排序6.1希尔排序时间复杂度分析 7.选择排序7.1初步思路7.2选择…

ArcGIS Pro SDK (十)地理处理 1 地理处理

ArcGIS Pro SDK (十)地理处理 文章目录 ArcGIS Pro SDK (十)地理处理1 执行模型工具2 设置地理处理范围环境3 在地理处理窗格中打开脚本工具对话框4 获取地理处理工程项目5 阻止使用 GP 创建的要素类自动添加到地图6 将执行消息添加到 Hisotry7 多环缓冲器8 地理处理工具的…

去中心化社交:探讨Facebook在区块链平台上的实践

随着区块链技术的崛起,社交平台也面临着前所未有的变革。作为全球最大的社交平台之一,Facebook(现名Meta Platforms)正在积极探索如何将区块链技术融入其平台,以引领去中心化社交的新时代。本文将从不同角度探讨Facebo…