Unity本地坐标系转世界坐标系(踩雷)

2018/7/21 问题描述:在UI中有一个物体,需要获取其世界坐标,作为另一个物体的位移动画的终点。

X | transform.localPosition获取的位置与unity自身显示的数据相同,但不是与其父物体相关,不能作为位移坐标。

X |  transform.position获取的位置也有偏移,具体原因不清楚。

X | transform.TransformPoint() 通过网络搜索找到本方法,直接使用,发现仍然有偏差。

X | transform.TransformPoint() 通过将位移动画的父物体的属性RectTransform/Pivot修改(0,0),最终得到无偏差的位移坐标,经过测试此方法只能在同一分辨率有效

Y | 最后使用了一个笨办法,将终点坐标赋予物体实例化,将物体放在位移动画父物体层级之下。获取坐标删除物体。

        GameObject goldObj = Instantiate(gold);

        goldObj.transform.position = end.transform.position;

        goldObj.transform.SetParent(this.transform);

        endVector = goldObj.transform.localPosition;

        Destroy(goldObj);

你可能感兴趣的:(Unity本地坐标系转世界坐标系(踩雷))