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)
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值