假设有子节点为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值就可以了.

05-08 08:37