unity 数学 不使用TransformPoint计算当前localPosition对应的worldpos
Posted sun_dust_shadow
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity 数学 不使用TransformPoint计算当前localPosition对应的worldpos相关的知识,希望对你有一定的参考价值。
求一个localPos的worldPos,如果能拿到parentTransform, 可以使用
一 :Transform.TransformPoint 和 Transform.TransformDirection 获取worldPos和worldDir
二:还有一种Matrix的方式:https://answers.unity.com/questions/1273879/local-point-to-world-point-without-transformpoint.html
1.Matrix4x4 m = Matrix4x4.TRS(position, rotation, scale);获取parent的Matrix
2.Vector3 worldPos = m.MultiplyPoint3x4(localPos); 获取localPos的世界pos
3.Vector3 localPos = m.inverse.MultiplyPoint3x4(worldPos);根据子物体的worldpos获取子物体的localPos
同理可以通过Matrix获取rotate和scale的计算。
如果roate和scale都是default值,则pos的计算可以直接:Vector3 worldPos = localPos + position;
以上是关于unity 数学 不使用TransformPoint计算当前localPosition对应的worldpos的主要内容,如果未能解决你的问题,请参考以下文章
Unity3d游戏开发Unity3D中的3D数学基础---向量