ObsItem.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using UnityEngine;
  6. using UnityEngine.Networking;
  7. using UnityEngine.UI;
  8. public class ObsItem : MonoBehaviour
  9. {
  10. public ObsData _data;
  11. public Button _button;
  12. private Text nameText;
  13. private RawImage fmImg;
  14. public static Dictionary<string, Texture> OBSTexLibrary = new Dictionary<string, Texture>();
  15. private void Awake()
  16. {
  17. _button = this.GetComponent<Button>();
  18. _button.onClick.AddListener(ShowObsTargetObj);
  19. nameText = this.transform.Find("nameText").GetComponent<Text>();
  20. fmImg = this.transform.GetComponent<RawImage>();
  21. }
  22. private void Start()
  23. {
  24. ActionInstance._Instance.obsFmUpdata += OnGetFmUpdate;
  25. }
  26. private void OnDestroy()
  27. {
  28. ActionInstance._Instance.obsFmUpdata -= OnGetFmUpdate;
  29. }
  30. public void SetData(ObsData data)
  31. {
  32. _data = data;
  33. if (_data.name != null)
  34. {
  35. nameText.text = _data.name;
  36. }
  37. StartCoroutine(LoadFmTex( ServerAddress.Server_TextureSavePath + _data.targetName + ".jpg"));
  38. }
  39. private void OnGetFmUpdate(string name)
  40. {
  41. if (name.Equals(_data.targetName))
  42. {
  43. StartCoroutine(LoadFmTex(ServerAddress.Server_TextureSavePath + _data.targetName + ".jpg"));
  44. }
  45. }
  46. IEnumerator LoadFmTex(string url)
  47. {
  48. UnityWebRequest www = UnityWebRequestTexture.GetTexture(url);
  49. yield return www.SendWebRequest();
  50. if (www.isDone && www.result == UnityWebRequest.Result.Success)
  51. {
  52. fmImg.texture = ((DownloadHandlerTexture)www.downloadHandler).texture;
  53. if(!OBSTexLibrary.ContainsKey(ServerAddress.Server_TextureSavePath + _data.targetName + ".jpg"))
  54. OBSTexLibrary.Add(ServerAddress.Server_TextureSavePath + _data.targetName + ".jpg", fmImg.texture);
  55. }
  56. www.disposeDownloadHandlerOnDispose = true;
  57. www.Dispose();
  58. }
  59. public void ShowObsTargetObj()
  60. {
  61. StaticLod.instance.OnFoucusStatic(_data.targetName);
  62. }
  63. }