【cocos creator】修改节点的父节点,保持绝对位置不变

要将一个节点更换到另一个父节点,同时保持其在世界坐标系中的绝对位置不变,可以按照以下步骤进行操作:

var node = cc.find("Canvas/Node"); // 替换为你的节点路径
var newParent = cc.find("Canvas/NewParent"); // 替换为新的父节点路径

// 将节点从当前父节点中移除
node.removeFromParent(false);

// 计算节点在世界坐标系中的位置
var worldPosition = node.convertToWorldSpaceAR(cc.Vec2.ZERO);

// 将节点设置为新的父节点
node.setParent(newParent);

// 根据之前计算的世界坐标位置,重新设置节点的位置
node.setPosition(newParent.convertToNodeSpaceAR(worldPosition));

在上述代码中,我们首先使用 cc.find() 方法找到目标节点和新的父节点。然后,使用 removeFromParent(false) 将节点从当前父节点中移除,保留其世界坐标位置。

接下来,使用 convertToWorldSpaceAR(cc.Vec2.ZERO) 方法计算节点在世界坐标系中的位置。

然后,使用 setParent(newParent) 方法将节点设置为新的父节点。

最后,使用 convertToNodeSpaceAR(worldPosition) 将之前计算的世界坐标位置转换为新父节点的本地坐标,并通过 setPosition() 方法设置节点的位置,以保持绝对位置不变。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值