ZhaMenIcon.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class ZhaMenIcon : MonoBehaviour
  5. {
  6. public string targetName;
  7. private RectTransform rect;
  8. private Camera _camera;
  9. public Transform targetTransForm;
  10. public void Awake()
  11. {
  12. rect = this.GetComponent<RectTransform>();
  13. rect.anchoredPosition = new Vector2(2000, 0);
  14. _camera = ModelCameraCtrl._Instance._camera;
  15. GameObject[] targets = GameObject.FindGameObjectsWithTag("BuYuanZhaMen");
  16. for (int i = 0; i < targets.Length; i++)
  17. {
  18. if (targets[i].name.Equals(targetName))
  19. {
  20. targetTransForm=targets[i].transform;
  21. break;
  22. }
  23. }
  24. }
  25. void Update()
  26. {
  27. if (targetTransForm != null)
  28. {
  29. if (IsObjectInCameraView(targetTransForm, _camera))
  30. {
  31. rect.transform.position=_camera.WorldToScreenPoint(targetTransForm.position);
  32. }
  33. else
  34. {
  35. rect.transform.position = new Vector3(2000, 0, 0);
  36. }
  37. }
  38. }
  39. bool IsObjectInCameraView(Transform objectTransform, Camera camera)
  40. {
  41. Vector3 objectScreenPosition = camera.WorldToScreenPoint(objectTransform.position);
  42. return objectScreenPosition.z > 0 &&
  43. objectScreenPosition.x > 0 &&
  44. objectScreenPosition.x < Screen.width &&
  45. objectScreenPosition.y > 0 &&
  46. objectScreenPosition.y < Screen.height;
  47. }
  48. }