Unity中局部坐标与世界坐标的相互转化

局部坐标转为世界坐标

此时son是parent的子物体,并且son此时的局部坐标为(2,0,0)在这里插入图片描述
此时我们利用脚本将son的世界坐标输出

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        Vector3 v =  transform.localToWorldMatrix.MultiplyPoint(transform.localPosition);
        Debug.Log(v);
    }
}

将脚本挂载到son上,并且运行游戏,结果如下
在这里插入图片描述
成功将son物体的局部坐标转为世界坐标
注意:局部坐标转为世界坐标就说将其子物体的局部坐标与父物体的坐标相加得到世界坐标

世界坐标转为相对于某一物体的局部坐标

例如,我们现在将son物体转换为相对于主摄像机的局部坐标
转换后的son物体的坐标为(0,0,-10)
在这里插入图片描述
通过代码实现

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test1 : MonoBehaviour
{
    //相对于哪个物体
    public Transform target;
    // Start is called before the first frame update
    void Start()
    {
        Vector3 v = transform.worldToLocalMatrix.MultiplyPoint3x4(target.position);
        Debug.Log(v);
    }
}

转换后的结果如下
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值