| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | using System;using System.Collections;using System.Collections.Generic;using System.IO;using UnityEngine;using UnityEngine.Networking;using UnityEngine.UI;public class ObsItem : MonoBehaviour{    public ObsData _data;    public Button _button;    private Text nameText;    private RawImage fmImg;    public static Dictionary<string, Texture> OBSTexLibrary = new Dictionary<string, Texture>();    private void Awake()    {        _button = this.GetComponent<Button>();        _button.onClick.AddListener(ShowObsTargetObj);        nameText = this.transform.Find("nameText").GetComponent<Text>();        fmImg = this.transform.GetComponent<RawImage>();    }    private void Start()    {        ActionInstance._Instance.obsFmUpdata += OnGetFmUpdate;    }    private void OnDestroy()    {        ActionInstance._Instance.obsFmUpdata -= OnGetFmUpdate;    }    public void SetData(ObsData data)    {        _data = data;        if (_data.name != null)        {            nameText.text = _data.name;        }        string hashName = ObsPlayerPanel.GetHashedName(_data.targetName);        StartCoroutine(LoadFmTex( ServerAddress.Server_TextureSavePath + hashName + ".jpg"));        //Debug.Log(_data.targetName + gameObject.activeSelf);    }    private void OnEnable()    {        if (!havePic && _data != null) {           // Debug.Log(_data.targetName);            string hashName = ObsPlayerPanel.GetHashedName(_data.targetName);            StartCoroutine(LoadFmTex(ServerAddress.Server_TextureSavePath + hashName + ".jpg"));        }    }    private void OnGetFmUpdate(string name)    {        if (name.Equals(ObsPlayerPanel.GetHashedName(_data.targetName)))        {            StartCoroutine(LoadFmTex(ServerAddress.Server_TextureSavePath + name + ".jpg"));        }    }    bool havePic = false;    IEnumerator LoadFmTex(string url)    {        UnityWebRequest www = UnityWebRequestTexture.GetTexture(url);        yield return www.SendWebRequest();        string hashName = ObsPlayerPanel.GetHashedName(_data.targetName);        if (www.isDone && www.result == UnityWebRequest.Result.Success)        {            fmImg.texture = ((DownloadHandlerTexture)www.downloadHandler).texture;            havePic = true;            if (!OBSTexLibrary.ContainsKey(ServerAddress.Server_TextureSavePath + hashName + ".jpg"))                OBSTexLibrary.Add(ServerAddress.Server_TextureSavePath + hashName + ".jpg", fmImg.texture);        }        else {            havePic = true;        }        www.disposeDownloadHandlerOnDispose = true;        www.Dispose();    }            public void ShowObsTargetObj()    {        StaticLod.instance.OnFoucusStatic(_data.targetName);    }}
 |