Konvertieren Sie Weltkoordinaten in Bildschirmkoordinaten

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);
            }
        }

Guess you like

Origin blog.csdn.net/hhh314159/article/details/134207514