Unity3D开发(编程)小技巧之三:计算两个物体的相对坐标

这是最近做unity项目遇到的一个问题,将解决过程以及最终解决方案(Unity community上大佬回答的)总结如下:

问题描述: 计算Unity场景中物体B在物体A坐标系下的坐标,且两物体没有父子关系

解决过程:
1.百度搜索,无果。网上基本上说的基本上是局部坐标系的问题。
2.查官方API,一番侦查之后,初步认定应该没有现成的方法(如果谁发现有请告知!)
3.QQ群求助,大佬说这么基本的问题好好去读API吧,再查无果。
4.灵感迸发,搜索了一下"relative position"终于在官方社区找到了解决方案。特此感谢…

解决方案

主要是一时没想明白,想明白了也就是一个简单的数学问题而已,直接贴代码如下:

    //计算同层次下一个物体A的position相对于另一个物体B(origin)的坐标
    private Vector3 GetRelativePosition(Transform origin, Vector3 position)
    {
        Vector3 distance = position - origin.position;
        Vector3 relativePosition = Vector3.zero;
        relativePosition.x = Vector3.Dot(distance, origin.right.normalized);
        relativePosition.y = Vector3.Dot(distance, origin.up.normalized);
        relativePosition.z = Vector3.Dot(distance, origin.forward.normalized);
        return relativePosition;
    }

经检验可用!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值