123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- public class DeviceIconCtrl : MonoBehaviour
- {
- private RectTransform rect;
- private Camera _camera;
-
- public DeviceIconData _data;
- private Text valueText;
- private Text nameText;
- public Transform targetTransForm;
-
- public Button _Button;
- public Image iconImg;
- public Sprite shuiWeiIcon;
- public Sprite shenYaJiIcon;
- public Sprite jingLiShuiZhunYiIcon;
- public Sprite wenDuIcon;
- public Sprite yinZhangXianYiIcon;
- public Sprite chuiXianZuoBiaoYiIcon;
- public Sprite tuYaLiJiIcon;
- public Sprite yingLiJiIcon;
- public Sprite sanXiangWeiCuoJiIcon;
- public Sprite erXiangCeFengJiIcon;
- public Sprite weiYiJiIcon;
-
- public void Init(DeviceIconData data)
- {
- _camera = CameraManager.instance.mainCamera;
- _data = data;
- targetTransForm = data.targetTransform;
-
- rect = this.GetComponent<RectTransform>();
-
- rect.anchoredPosition = new Vector2(2000, 0);
- iconImg = this.transform.Find("bg").GetComponent<Image>();
- switch (_data.type)
- {
- case GongChengType.shuiWei:
- iconImg.sprite = shuiWeiIcon;
- break;
- case GongChengType.shenYaJi:
- iconImg.sprite = shenYaJiIcon;
- break;
- case GongChengType.jingLiShuiZhunYi:
- iconImg.sprite = jingLiShuiZhunYiIcon;
- break;
- case GongChengType.wenDu:
- iconImg.sprite = wenDuIcon;
- break;
- case GongChengType.yinZhangXianYi:
- iconImg.sprite = yinZhangXianYiIcon;
- break;
- case GongChengType.chuiXianZuoBiaoYi:
- iconImg.sprite = chuiXianZuoBiaoYiIcon;
- break;
- case GongChengType.tuYaLiJi:
- iconImg.sprite = tuYaLiJiIcon;
- break;
- case GongChengType.yingLiJi:
- iconImg.sprite = yingLiJiIcon;
- break;
- case GongChengType.sanXiangWeiCuoJi:
- iconImg.sprite = sanXiangWeiCuoJiIcon;
- break;
- case GongChengType.erXiangCeFengJi:
- iconImg.sprite = erXiangCeFengJiIcon;
- break;
- case GongChengType.weiYiJi:
- iconImg.sprite = weiYiJiIcon;
- break;
- }
- nameText = this.transform.Find("nameText").GetComponent<Text>();
- nameText.text = $"{_data.name}";
- valueText = this.transform.Find("valueText").GetComponent<Text>();
- valueText.text = $"{_data.value} <size=12><color=FFFFFF>{_data.valueType}</color></size>";
-
- _Button.onClick.AddListener(() =>
- {
- GCJKLayer._Instance.OpenDeviceTrendPanel(_data.name,_data.type,_data.gid,_data.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;
- }
- }
|