| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | using System;using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class ObsIconCtrl : MonoBehaviour{    private RectTransform rect;    private Camera _camera;    private Button _button;    public ObsData _data;    public Transform targetTransForm;        public void Init(ObsData data)    {        _data = data;                rect = this.GetComponent<RectTransform>();        _button = this.transform.Find("Icon").GetComponent<Button>();        _button.onClick.AddListener(()=>        {            GCJKLayer._Instance.ShowObsPlayerPanel(_data);        });                rect.anchoredPosition = new Vector2(2000, 0);        _camera = CameraManager.instance.mainCamera;                targetTransForm=StaticLod.instance.GetStaticObj(_data.targetName).transform;    }        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;    }}
 |