ISAP/Assets/Scripts/UI/FileItem.cs

91 lines
2.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
public class FileItem : MonoBehaviour
{
public FileInfoData currentData;
public GameObject titlePanel;
public GameObject contentPanel;
public TextMeshProUGUI titleTxt;
public TextMeshProUGUI contentTxt;
public Image img;
private void Awake()
{
}
public void Init(FileInfoData data)
{
currentData = data;
if (currentData != null)
{
titleTxt.text = currentData.title;
contentTxt.text = currentData.content;
if (string.IsNullOrEmpty(currentData.title))
{
titlePanel.SetActive(false);
}
if (string.IsNullOrEmpty(currentData.content))
{
contentPanel.SetActive(false);
}
switch (data.type)
{
case FileType.text:
break;
case FileType.image:
StartCoroutine(DownSprite());
break;
}
}
else
{
Debug.LogError("ÎļþÐÅϢΪ¿Õ");
}
}
IEnumerator DownSprite()
{
UnityWebRequest wr = new UnityWebRequest(currentData.url);
DownloadHandlerTexture texD1 = new DownloadHandlerTexture(true);
wr.downloadHandler = texD1;
yield return wr.SendWebRequest();
int width = 400;
int high = 300;
if (!wr.isNetworkError)
{
Texture2D tex = new Texture2D(width, high);
tex = texD1.texture;
//±£´æ±¾µØ
//Byte[] bytes = tex.EncodeToPNG();
//File.WriteAllBytes(Application.dataPath + "/" + data.name + ".png", bytes);
Sprite sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new Vector2(0.5f, 0.5f));
img.sprite = sprite;
img.gameObject.SetActive(true);
//transform.GetComponent<Image>().sprite = sprite;
UIManager.Instance.GetUIBase(UIType.UIFile).gameObject.GetComponent<UIFile>().Refrush();
}
}
private void OnDestroy()
{
}
}
public class FileInfoData
{
public string title;
public string content;
public FileType type;
public string url;
public DataItem2 question;
}