using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class ShuiYaIconCtrl : MonoBehaviour { private RectTransform rect; private Camera _camera; public ShuiYaData _data; private Text valueText; private Text nameText; public Transform targetTransForm; public Button _Button; public GongChengLieBiaoData _deviceData; public void Init(ShuiYaData data) { _camera = CameraManager.instance.mainCamera; _data = data; _deviceData = new GongChengLieBiaoData(); _deviceData.name = _data.name; _deviceData.type = GongChengType.shuiYa; _deviceData.state = GongChengState.normal; _deviceData.sid = _data.sid; _deviceData.gid = _data.gid; 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"; _Button.onClick.AddListener(() => { GCJKLayer._Instance.OpenDeviceTrendPanel(_deviceData.name,_deviceData.type,_deviceData.gid,_deviceData.sid); }); } 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; } }