原文:http://www.cnblogs.com/veboys/p/4353711.html
public class HUDText : MonoBehaviour { public Transform target; public Vector3 offset; private RectTransform r_Transform; private void Awake() { r_Transform = GetComponent<RectTransform>(); } void Update() { if (target != null) { Vector3 temp = target.TransformPoint(offset); Vector3 ScenePos = Camera.main.WorldToScreenPoint(temp); r_Transform.anchoredPosition3D = ScenePos; } } }
但这里有个注意点,直接使用会出现坐标不正常显示的情况下。
原因是 Camera.main.WorldToScreenPoint 是把坐标转换为屏幕坐标系,但屏幕坐标系是从左下角开始算起的,所以要把你的UI元素也设置为从左下角开始计算坐标。如下图:
备注:
最后还是有一点问题, 就是时不时突然出现在不对的位置,解决了再更新。