using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class ShuiWeiCtrl : MonoBehaviour { private RectTransform rect; private Camera _camera; private Text valueText; private Text nameText; public Transform targetTransForm; public void Init() { _camera = CameraManager.instance.mainCamera; rect = this.GetComponent(); rect.anchoredPosition = new Vector2(2000, 0); valueText = this.transform.Find("valueText").GetComponent(); nameText = this.transform.Find("nameText").GetComponent(); } public void SetData(string name,float? swValue,Transform target) { nameText.text = name; string swStr = swValue.ToString(); if (swStr.Equals("")) { swStr = "-"; } valueText.text = $"{swStr} m"; targetTransForm = target; } void Update() { if (targetTransForm != null) { if (IsObjectInCameraView(targetTransForm, _camera)) { rect.transform.position=_camera.WorldToScreenPoint(targetTransForm.position); } else { rect.transform.position = new Vector3(2000, 0, 0); } } } bool IsObjectInCameraView(Transform objectTransform, Camera camera) { Vector3 objectScreenPosition = camera.WorldToScreenPoint(objectTransform.position); return objectScreenPosition.z > 0 && objectScreenPosition.x > 0 && objectScreenPosition.x < Screen.width && objectScreenPosition.y > 0 && objectScreenPosition.y < Screen.height; } }