using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class WeiYiIconCtrl : MonoBehaviour { private RectTransform rect; private Camera _camera; public WeiYiData _data; private Text valueText; private Text nameText; public Transform targetTransForm; public void Init(WeiYiData data) { _camera = CameraManager.instance.mainCamera; _data = data; rect = this.GetComponent(); rect.anchoredPosition = new Vector2(2000, 0); nameText = this.transform.Find("nameText").GetComponent(); nameText.text = $"{_data.name}位移"; valueText = this.transform.Find("valueText").GetComponent(); valueText.text = $"{data.value} mm"; } 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; } }