ObsItem.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. private void Awake()
  15. {
  16. _button = this.GetComponent<Button>();
  17. _button.onClick.AddListener(ShowObsTargetObj);
  18. nameText = this.transform.Find("nameText").GetComponent<Text>();
  19. fmImg = this.transform.GetComponent<RawImage>();
  20. }
  21. private void Start()
  22. {
  23. ActionInstance._Instance.obsFmUpdata += OnGetFmUpdate;
  24. }
  25. private void OnDestroy()
  26. {
  27. ActionInstance._Instance.obsFmUpdata -= OnGetFmUpdate;
  28. }
  29. public void SetData(ObsData data)
  30. {
  31. _data = data;
  32. if (_data.name != null)
  33. {
  34. nameText.text = _data.name;
  35. }
  36. StartCoroutine(LoadFmTex( ServerAddress.Server_TextureSavePath + _data.targetName + ".jpg"));
  37. }
  38. private void OnGetFmUpdate(string name)
  39. {
  40. if (name.Equals(_data.targetName))
  41. {
  42. StartCoroutine(LoadFmTex(ServerAddress.Server_TextureSavePath + _data.targetName + ".jpg"));
  43. }
  44. }
  45. IEnumerator LoadFmTex(string url)
  46. {
  47. UnityWebRequest www = UnityWebRequestTexture.GetTexture(url);
  48. yield return www.SendWebRequest();
  49. if (www.isDone && www.result == UnityWebRequest.Result.Success)
  50. {
  51. fmImg.texture = ((DownloadHandlerTexture)www.downloadHandler).texture;
  52. }
  53. www.disposeDownloadHandlerOnDispose = true;
  54. www.Dispose();
  55. }
  56. public void ShowObsTargetObj()
  57. {
  58. StaticLod.instance.OnFoucusStatic(_data.targetName);
  59. }
  60. }