当前位置: 代码迷 >> 综合 >> CocosCreator 获取Node的世界坐标
  详细解决方案

CocosCreator 获取Node的世界坐标

热度:91   发布时间:2024-02-02 18:17:44.0

CocosCreator 获取与某个Node的世界坐标

  • 简介
  • 代码

简介

为了拿到当前Node的世界坐标,或者把世界坐标变成Node同层次的坐标

代码

写了一个工具类可以直接放入CocosCreator使用
使用方法:
let nodeToWorldPos = TransformUtil.GetWorldPostation2(yourNode)

   const { ccclass, property } = cc._decorator;
/** * TransformUtil * 移动工具 * @ author: SlowFeather * @ wechat: BackedByTheWT * @ data: 2020-07-14 13:44 */
@ccclass
export default class TransformUtil {/*** 拿到世界坐标** @static* @param {cc.Node} node* @returns {cc.Vec2}* @memberof TransformUtil*/public static GetWorldPostation2(node: cc.Node): cc.Vec2 {if (node.parent == null) return node.getPosition()return node.parent.convertToWorldSpaceAR(node.getPosition())}/*** 拿到世界坐标* * @static* @param {cc.Node} node* @returns {cc.Vec3}* @memberof TransformUtil*/public static GetWorldPostation3(node: cc.Node): cc.Vec3 {if (node.parent == null) return node.positionreturn node.parent.convertToWorldSpaceAR(node.position)}/*** 将世界坐标转换为当前node的坐标** @static* @param {cc.Node} node 当前的node* @param {cc.Vec2} worldPos 世界坐标* @returns {cc.Vec2}* @memberof TransformUtil*/public static GetNodePostation2(node: cc.Node, worldPos: cc.Vec2): cc.Vec2 {if (node.parent == null) return worldPos;return node.parent.convertToNodeSpaceAR(worldPos)}}
  相关解决方案