NewN_UAVPlane/Assets/Zion/Scripts/WRJ0125/DroneViewDisplay.cs

88 lines
2.8 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// 无人机视角显示
/// </summary>
public class DroneViewDisplay : MonoSingleton<DroneViewDisplay>
{
public Transform uiParent;
#region UI
public static List<RadioAngleView> radioAngleViews = new List<RadioAngleView>();
/// <summary>
/// UIPrefab
/// </summary>
[Header("UIPrefab")]
public GameObject prefabRadioAngleView;
/// <summary>
/// 放大显示
/// </summary>
[Header("放大显示")]
public Transform radioAngleViewMax;
/// <summary>
/// 放大显示无人机名称
/// </summary>
[Header("放大显示无人机名称")]
public Text textNmme;
/// <summary>
/// 放大显示关闭按钮
/// </summary>
[Header("放大显示关闭按钮")]
public Button btnClose;
/// <summary>
/// 放大显示视角显示RawImage
/// </summary>
[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()
{
}
/// <summary>
/// 显示UI
/// </summary>
/// <param name="deviceID">无人机设备id</param>
/// <param name="wRJModel">无人机设备类型</param>
/// <param name="name">无人机名称</param>
/// <param name="camera">渲染摄像机画面</param>
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<RadioAngleView>();
if (_radioAngleView)
{
_radioAngleView.deviceID = deviceID;
_radioAngleView.textNmme.text = name;
_radioAngleView.rawShow.texture = camera.targetTexture;
Mask mask = wrj.transform.GetComponentInChildren<Mask>();
if (mask)
mask.enabled= wRJModel == WRJModel. ? true : false;
radioAngleViews.Add(_radioAngleView);
}
}
}
}
}