using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// /// 无人机视角显示 /// public class DroneViewDisplay : MonoSingleton { public Transform uiParent; #region UI public static List radioAngleViews = new List(); /// /// UIPrefab /// [Header("UIPrefab")] public GameObject prefabRadioAngleView; /// /// 放大显示 /// [Header("放大显示")] public Transform radioAngleViewMax; /// /// 放大显示无人机名称 /// [Header("放大显示无人机名称")] public Text textNmme; /// /// 放大显示关闭按钮 /// [Header("放大显示关闭按钮")] public Button btnClose; /// /// 放大显示视角显示RawImage /// [Header("无线电探测放大显示视角显示RawImage")] public RawImage rawShow; #endregion // Start is called before the first frame update void Start() { btnClose.onClick.AddListener(() => { radioAngleViewMax.localScale = Vector3.zero; }); } // Update is called once per frame void Update() { } /// /// 显示UI /// /// 无人机设备id /// 无人机设备类型 /// 无人机名称 /// 渲染摄像机画面 public void CreateUI(string deviceID, WRJModel wRJModel, string name, Camera camera) { RadioAngleView radioAngleView = radioAngleViews.Find(x => x.deviceID == deviceID); if (radioAngleView) { radioAngleViewMax.localScale = Vector3.one; textNmme.text = name; rawShow.texture = camera.targetTexture; } else { if (wRJModel == WRJModel.电子侦察无人机|| wRJModel == WRJModel.光学无人机){ GameObject wrj = Instantiate(prefabRadioAngleView, uiParent); wrj.name = name; RadioAngleView _radioAngleView = wrj.GetComponent(); if (_radioAngleView) { _radioAngleView.deviceID = deviceID; _radioAngleView.textNmme.text = name; _radioAngleView.rawShow.texture = camera.targetTexture; Mask mask = wrj.transform.GetComponentInChildren(); if (mask) mask.enabled= wRJModel == WRJModel.电子侦察无人机 ? true : false; radioAngleViews.Add(_radioAngleView); } } } } }