如何让一个方块,到鼠标点击的位置,鼠标点击的坐标值怎么转换成为节点的位置?
谢谢!
/** 世界坐标 转换相对节点的坐标 */
public getToNodePosForWorld(wPos: cc.Vec2, Thisnode: cc.Node) {
return Thisnode.convertToNodeSpaceAR(wPos);
}
上面这个,第一个就是鼠标点击的坐标,第二个就是使用转换后的坐标,还是很大,最后一个是节点当前的坐标,只是个位数,一赋值就不知道跑哪里去了
“
let Pos = event.getLocation();
let v3Pos = new Vec3(Pos.x,Pos.y,0);
const uiTrans = this.node.parent.getComponent(UITransform);
let locPos = uiTrans.convertToNodeSpaceAR(v3Pos);//世界坐标转还为节点坐标
let locPos1 = uiTrans.convertToWorldSpaceAR(v3Pos);
let oldPos = this.node.parent.position;
console.log('mouse position: '+Pos+ ' converted postion: '+locPos+'converted worldSpaceAR pos: '+locPos1+' node curPosition: '+oldPos);
”
另外我这里,This.node 下没有convertToNodeSpaceAR这些转换函数,所以用了UITransform组件,不知道是不是这样
是getUILocation
一样,提示没有convertToNodeSpaceAR这个函数
let Pos = event.getUILocation();
let v3Pos = new Vec3(Pos.x,Pos.y,0);
let locPos = this.node.parent.convertToNodeSpaceAR(v3Pos);//世界坐标转还为节点坐标
this.node.parent.setPosition(locPos);
console.log(locPos);
this.node.parent.getComponent(UITransform).convertToNodeSpaceAR
或者直接设置世界坐标
this.node.parent.setWorldPosition
这个api移到UITransform里面了
1赞
设置世界坐标也不知道跑哪里去了
let Pos = event.getUILocation();
let v3Pos = new Vec3(Pos.x,Pos.y,0);
this.node.parent.setWorldPosition(v3Pos);
console.log(v3Pos);
3D的啊···
3D的用射线检测
这么高深吗?有没有示例源代码?网上找到那些案例都没有涉及到这个
这么好的网址,官方可以发个置顶帖:置顶汇总各个高质量的示例汇总网址,新人进来也就不用到处乱找到处迷茫了
这个必须要加UITransform吗