1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- 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);
- }
- www.disposeDownloadHandlerOnDispose = true;
- www.Dispose();
- }
-
-
- public void ShowObsTargetObj()
- {
- StaticLod.instance.OnFoucusStatic(_data.targetName);
- }
- }
|