Konvertieren Sie Weltkoordinaten in Bildschirmkoordinaten
, damit
Objekte in der UI-Ebene Objekten in der 3D-Welt folgen können.
Anwendungsszenarien:
Gesundheitsbalken, Chat-Blasen, Objekttipps
Koordinaten transformieren
private Vector2 GetScreenPosition(Vector3 worldPosition)
{
Vector2 anchoredPosition = _camera.WorldToScreenPoint(worldPosition);
anchoredPosition *= CanvasHelper.RootCanvasSize.x / Screen.width;
float newWidth = anchoredPosition.x - CanvasHelper.RootCanvasSize.x * 0.5f;
float newHeight = anchoredPosition.y - CanvasHelper.RootCanvasSize.y * 0.5f;
return new Vector2(newWidth, newHeight);
}
Update im Update
public void OnUpdate()
{
if (_target != null && CharacterController.Instance != null)
{
rectTransform.anchoredPosition = GetScreenPosition(_target.position);
}
}