版本:cocoscreator3.4.0
基本原理:
通过触摸屏幕上的点生成一个射线,通过物理射线检测,获得是否点击到物体
通过射线的检测结果(raycastResults)获得碰撞点(hitPoint)
设置物体的x,z为碰撞点的x,y即可
import { _decorator, Component, Node, Camera, geometry, input, Input, EventTouch, PhysicsSystem, math, clamp, Vec3 } from 'cc';
const { ccclass, property } = _decorator;
@ccclass('move')
export class move extends Component {
@property(Camera)
readonly cameraCom!: Camera;
@property(Node)
public targetNode!: Node
private _ray: geometry.Ray = new geometry.Ray();
_position = new math.Vec3();
start() {
math.Vec3.copy(this._position, this.targetNode.position);
}
onDestroy() {
this._removeEvents();
}
onEnable() {
this._addEvents();
}
onDisable() {
this._removeEvents();
}
private _addEvents() {
input.on(Input.EventType.TOUCH_MOVE, this.onTouc