比如血条等的位置,实时跟随主角。
using UnityEngine;
public class Game3DPosToUIPosMyTest : MonoBehaviour
{
public Transform targetTran;
public RectTransform hpTran;
public Camera uiCamera;
public RectTransform canvasTran;
private Vector2 offsetY = new Vector2(0, 100);
private void Update()
{
Vector2 screenPoint = RectTransformUtility.WorldToScreenPoint(Camera.main, targetTran.position);
Vector2 localPoint;
if (RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasTran, screenPoint, uiCamera, out localPoint))
{
hpTran.anchoredPosition = localPoint + offsetY;
}
}
}
需要一直结算会带来一定开销。
可以使用Text Mesh组件直接挂在角色上。这样可以自动跟随主角。
还可以根据摄像机的远近调整字号大小。