假设有子节点为child, 父节点为parent, 且都是Transform类型.
则:
child.localPosition = (child.position - parent.position) * k
k = NGUI高度的一半
解释:
NGUI高度的一半
如果设置的NGUI的高度为720, 那就是*360.
一般做NGUI都是高度固定, K会是一个固定值
如果你做的是宽度固定为W, k可以这样计算出来
k = 0.5f * W * (float)Screen.height / (float)Screen.width;
或者不考虑是高度固定还是宽度固定干脆这样计算:
k = 1.0f / UIRoot.list[0].transform.localScale;
或者是这样:(这一条没有广泛测试)
k = child.worldToLocalMatrix[10] * child.localScale;
其实如果不在NGUI下面的话, child.localposition = child.position - parent.position.
NGUI的不同之处在于它加入了UI像素的概念,让1米变成了几百个像素.我们需要找到这个K值就可以了.