CocosCreator 获取Node的世界坐标

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.position
        return 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)
    }

}

你可能感兴趣的:(CocosCreator)