注意:将Canvas的Render Model改为Screen-Space Camera。
1.UGUI坐标转世界坐标
Vector3 ptScreen = RectTransformUtility.WorldToptScreeneenPoint (Camera.main, button.transform.position);
ptScreen.z = 0;
ptScreen.z = Mathf.Abs (Camera.main.transform.position.z - transform.position.z);
Vector3 ptWorld = Camera.main.ptScreeneenToWorldPoint (ptScreen);
2.世界坐标转UGUI坐标
Vector3 ptWorld;
ptWorld = Camera.main.WorldToScreenPoint(obj.transform.position);
Vector2 pos;
RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, ptWorld, canvas.worldCamera, out pos);
rectTransform.anchoredPosition = pos;//如果位置与预期不一致,请修改锚点对齐方式